Skip to content

Commit

Permalink
HSEARCH-4705 ES test dialect cleanups
Browse files Browse the repository at this point in the history
- remove the interface and have just a simple class
- use actual version in messages instead of dialect
  • Loading branch information
marko-bekhta authored and yrodiere committed Oct 13, 2022
1 parent 239851f commit 8949ca0
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 81 deletions.
Expand Up @@ -26,6 +26,7 @@
import org.hibernate.search.integrationtest.backend.tck.testsupport.util.rule.SearchSetupHelper;
import org.hibernate.search.util.common.SearchException;
import org.hibernate.search.util.common.impl.Futures;
import org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.dialect.ElasticsearchTestDialect;
import org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.rule.TestElasticsearchClient;
import org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappedIndex;
import org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappingSchemaManagementStrategy;
Expand Down Expand Up @@ -352,7 +353,7 @@ public void attribute_format_incomplete() {
List<String> nextFormats = elasticSearchClient.getDialect().getAllLocalDateDefaultMappingFormats()
.stream().skip( 1 ).collect( Collectors.toList() );
assumeFalse(
"Skipping this test as we don't have a type with multiple default formats in " + elasticSearchClient.getDialect(),
"Skipping this test as we don't have a type with multiple default formats in " + ElasticsearchTestDialect.getActualVersion(),
nextFormats.isEmpty()
);

Expand Down
Expand Up @@ -22,6 +22,7 @@
import org.hibernate.search.integrationtest.backend.tck.testsupport.util.rule.SearchSetupHelper;
import org.hibernate.search.util.common.SearchException;
import org.hibernate.search.util.common.impl.Futures;
import org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.dialect.ElasticsearchTestDialect;
import org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.rule.TestElasticsearchClient;
import org.hibernate.search.util.impl.integrationtest.common.reporting.FailureReportChecker;
import org.hibernate.search.util.impl.integrationtest.mapper.stub.StubMappedIndex;
Expand Down Expand Up @@ -144,7 +145,7 @@ public void success_3() {
@Test
public void mapping_missing() {
assumeTrue(
"Skipping this test as there is always a mapping (be it empty) in " + elasticSearchClient.getDialect(),
"Skipping this test as there is always a mapping (be it empty) in " + ElasticsearchTestDialect.getActualVersion(),
elasticSearchClient.getDialect().isEmptyMappingPossible()
);

Expand Down
Expand Up @@ -6,38 +6,68 @@
*/
package org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.dialect;

import static org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.dialect.ElasticsearchVersionUtils.isActualVersionBetweenIncluding;
import static org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.dialect.ElasticsearchVersionUtils.isActualVersionLess;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;

import org.hibernate.search.backend.elasticsearch.ElasticsearchVersion;
import org.hibernate.search.backend.elasticsearch.client.impl.Paths;
import org.hibernate.search.backend.elasticsearch.util.spi.URLEncodedString;

public interface ElasticsearchTestDialect {
public class ElasticsearchTestDialect {

private static final ElasticsearchVersion ACTUAL_VERSION = ElasticsearchVersion.of(
System.getProperty( "org.hibernate.search.integrationtest.backend.elasticsearch.version" )
);

static ElasticsearchTestDialect get() {
return new ElasticsearchTestDialectImpl();
public static ElasticsearchTestDialect get() {
return new ElasticsearchTestDialect();
}

static ElasticsearchVersion getActualVersion() {
return ElasticsearchVersion.of( System.getProperty( "org.hibernate.search.integrationtest.backend.elasticsearch.version" ) );
public static ElasticsearchVersion getActualVersion() {
return ACTUAL_VERSION;
}

boolean isEmptyMappingPossible();

Optional<URLEncodedString> getTypeNameForMappingAndBulkApi();
public boolean isEmptyMappingPossible() {
return isActualVersionLess( ACTUAL_VERSION, "elastic:6.9.0" );
}

Boolean getIncludeTypeNameParameterForMappingApi();
@SuppressWarnings("deprecation")
public Optional<URLEncodedString> getTypeNameForMappingAndBulkApi() {
if ( isActualVersionLess( ACTUAL_VERSION, "elastic:6.9.0" ) ) {
return Optional.of( Paths.DOC );
}
return Optional.empty();
}

List<String> getAllLocalDateDefaultMappingFormats();
public Boolean getIncludeTypeNameParameterForMappingApi() {
if ( isActualVersionBetweenIncluding( ACTUAL_VERSION, "elastic:6.4.0", "elastic:6.9.0" ) ) {
return Boolean.TRUE;
}
return null;
}

default String getFirstLocalDateDefaultMappingFormat() {
return getAllLocalDateDefaultMappingFormats().get( 0 );
public List<String> getAllLocalDateDefaultMappingFormats() {
if ( isActualVersionLess( ACTUAL_VERSION, "elastic:6.9.0" ) ) {
return Arrays.asList( "yyyy-MM-dd", "yyyyyyyyy-MM-dd" );
}
return Collections.singletonList( "uuuu-MM-dd" );
}

default String getConcatenatedLocalDateDefaultMappingFormats() {
return String.join( "||", getAllLocalDateDefaultMappingFormats() );
public boolean supportsIsWriteIndex() {
return !isActualVersionLess( ACTUAL_VERSION, "elastic:6.4.0" );
}

boolean supportsIsWriteIndex();
public String getFirstLocalDateDefaultMappingFormat() {
return getAllLocalDateDefaultMappingFormats().get( 0 );
}

public String getConcatenatedLocalDateDefaultMappingFormats() {
return String.join( "||", getAllLocalDateDefaultMappingFormats() );
}
}

This file was deleted.

0 comments on commit 8949ca0

Please sign in to comment.