diff --git a/src/main/java/org/springframework/data/elasticsearch/core/IndexOperationsAdapter.java b/src/main/java/org/springframework/data/elasticsearch/core/IndexOperationsAdapter.java new file mode 100644 index 000000000..ad406884e --- /dev/null +++ b/src/main/java/org/springframework/data/elasticsearch/core/IndexOperationsAdapter.java @@ -0,0 +1,214 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.data.elasticsearch.core; + +import reactor.core.publisher.Mono; + +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +import org.springframework.data.elasticsearch.core.document.Document; +import org.springframework.data.elasticsearch.core.index.*; +import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; +import org.springframework.lang.Nullable; +import org.springframework.util.Assert; + +/** + * Adapter for creating synchronous calls for a reactive {@link ReactiveIndexOperations}. + * + * @author Peter-Josef Meisch + * @since 5.2 + */ +public interface IndexOperationsAdapter extends IndexOperations { + static IndexOperationsAdapter blocking(ReactiveIndexOperations reactiveIndexOperations) { + + Assert.notNull(reactiveIndexOperations, "reactiveIndexOperations must not be null"); + + return new IndexOperationsAdapter() { + @Override + public boolean create() { + return Boolean.TRUE.equals(reactiveIndexOperations.create().block()); + } + + @Override + public boolean create(Map settings) { + return Boolean.TRUE.equals(reactiveIndexOperations.create(settings).block()); + } + + @Override + public boolean create(Map settings, Document mapping) { + return Boolean.TRUE.equals(reactiveIndexOperations.create(settings, mapping).block()); + } + + @Override + public boolean createWithMapping() { + return Boolean.TRUE.equals(reactiveIndexOperations.createWithMapping().block()); + } + + @Override + public boolean delete() { + return Boolean.TRUE.equals(reactiveIndexOperations.delete().block()); + } + + @Override + public boolean exists() { + return Boolean.TRUE.equals(reactiveIndexOperations.exists().block()); + } + + @Override + public void refresh() { + reactiveIndexOperations.refresh().block(); + } + + @Override + public Document createMapping() { + return Objects.requireNonNull(reactiveIndexOperations.createMapping().block()); + } + + @Override + public Document createMapping(Class clazz) { + return Objects.requireNonNull(reactiveIndexOperations.createMapping(clazz).block()); + + } + + @Override + public boolean putMapping(Document mapping) { + return Boolean.TRUE.equals(reactiveIndexOperations.putMapping(Mono.just(mapping)).block()); + } + + @Override + public Map getMapping() { + return Objects.requireNonNull(reactiveIndexOperations.getMapping().block()); + } + + @Override + public Settings createSettings() { + return Objects.requireNonNull(reactiveIndexOperations.createSettings().block()); + } + + @Override + public Settings createSettings(Class clazz) { + return Objects.requireNonNull(reactiveIndexOperations.createSettings(clazz).block()); + } + + @Override + public Settings getSettings() { + return Objects.requireNonNull(reactiveIndexOperations.getSettings().block()); + } + + @Override + public Settings getSettings(boolean includeDefaults) { + return Objects.requireNonNull(reactiveIndexOperations.getSettings(includeDefaults).block()); + } + + @Override + public boolean alias(AliasActions aliasActions) { + return Boolean.TRUE.equals(reactiveIndexOperations.alias(aliasActions).block()); + } + + @Override + public Map> getAliases(String... aliasNames) { + return Objects.requireNonNull(reactiveIndexOperations.getAliases(aliasNames).block()); + } + + @Override + public Map> getAliasesForIndex(String... indexNames) { + return Objects.requireNonNull(reactiveIndexOperations.getAliasesForIndex(indexNames).block()); + } + + @Deprecated + @Override + public boolean putTemplate(PutTemplateRequest putTemplateRequest) { + return Boolean.TRUE.equals(reactiveIndexOperations.putTemplate(putTemplateRequest).block()); + } + + @Override + public boolean putIndexTemplate(PutIndexTemplateRequest putIndexTemplateRequest) { + return Boolean.TRUE.equals(reactiveIndexOperations.putIndexTemplate(putIndexTemplateRequest).block()); + } + + @Override + public boolean putComponentTemplate(PutComponentTemplateRequest putComponentTemplateRequest) { + return Boolean.TRUE.equals(reactiveIndexOperations.putComponentTemplate(putComponentTemplateRequest).block()); + } + + @Override + public boolean existsComponentTemplate(ExistsComponentTemplateRequest existsComponentTemplateRequest) { + return Boolean.TRUE + .equals(reactiveIndexOperations.existsComponentTemplate(existsComponentTemplateRequest).block()); + } + + @Override + public List getComponentTemplate(GetComponentTemplateRequest getComponentTemplateRequest) { + return Objects.requireNonNull( + reactiveIndexOperations.getComponentTemplate(getComponentTemplateRequest).collectList().block()); + } + + @Override + public boolean deleteComponentTemplate(DeleteComponentTemplateRequest deleteComponentTemplateRequest) { + return Boolean.TRUE + .equals(reactiveIndexOperations.deleteComponentTemplate(deleteComponentTemplateRequest).block()); + } + + @Deprecated + @Nullable + @Override + public TemplateData getTemplate(GetTemplateRequest getTemplateRequest) { + return Objects.requireNonNull(reactiveIndexOperations).getTemplate(getTemplateRequest).block(); + } + + @Deprecated + @Override + public boolean existsTemplate(ExistsTemplateRequest existsTemplateRequest) { + return Boolean.TRUE.equals(reactiveIndexOperations.existsTemplate(existsTemplateRequest).block()); + } + + @Override + public boolean existsIndexTemplate(ExistsIndexTemplateRequest existsTemplateRequest) { + return Boolean.TRUE.equals(reactiveIndexOperations.existsIndexTemplate(existsTemplateRequest).block()); + } + + @Override + public List getIndexTemplate(GetIndexTemplateRequest getIndexTemplateRequest) { + return Objects + .requireNonNull(reactiveIndexOperations.getIndexTemplate(getIndexTemplateRequest).collectList().block()); + } + + @Override + public boolean deleteIndexTemplate(DeleteIndexTemplateRequest deleteIndexTemplateRequest) { + return Boolean.TRUE.equals(reactiveIndexOperations.deleteIndexTemplate(deleteIndexTemplateRequest).block()); + } + + @Deprecated + @Override + public boolean deleteTemplate(DeleteTemplateRequest deleteTemplateRequest) { + return Boolean.TRUE.equals(reactiveIndexOperations.deleteTemplate(deleteTemplateRequest).block()); + } + + @Override + public List getInformation(IndexCoordinates index) { + return Objects.requireNonNull(reactiveIndexOperations.getInformation(index).collectList().block()); + } + + @Override + public IndexCoordinates getIndexCoordinates() { + return reactiveIndexOperations.getIndexCoordinates(); + } + }; + } +} diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepository.java b/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepository.java index 30251ac6b..175a33da8 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepository.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepository.java @@ -15,6 +15,8 @@ */ package org.springframework.data.elasticsearch.repository.support; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; + import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -62,12 +64,14 @@ public SimpleReactiveElasticsearchRepository(ElasticsearchEntityInformation exists ? Mono.empty() : indexOperations.createWithMapping()) // - .block(); - } else if(shouldAlwaysWriteMapping()) { - indexOperations.putMapping().block(); + if (!blockingIndexOperations.exists()) { + blockingIndexOperations.createWithMapping(); + } + } else if (shouldAlwaysWriteMapping()) { + blockingIndexOperations.putMapping(); } } diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchIntegrationTests.java index 5a6c2a740..483f7bc92 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchIntegrationTests.java @@ -18,6 +18,7 @@ import static java.util.Collections.*; import static org.assertj.core.api.Assertions.*; import static org.springframework.data.elasticsearch.annotations.FieldType.*; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; import static org.springframework.data.elasticsearch.core.query.StringQuery.*; import reactor.core.publisher.Flux; @@ -105,14 +106,14 @@ public abstract class ReactiveElasticsearchIntegrationTests { public void beforeEach() { indexNameProvider.increment(); - operations.indexOps(SampleEntity.class).createWithMapping().block(); - operations.indexOps(IndexedIndexNameEntity.class).createWithMapping().block(); + blocking(operations.indexOps(SampleEntity.class)).createWithMapping(); + blocking(operations.indexOps(IndexedIndexNameEntity.class)).createWithMapping(); } @Test @Order(java.lang.Integer.MAX_VALUE) void cleanup() { - operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + "*")).delete().block(); + blocking(operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*'))).delete(); } // endregion @@ -625,7 +626,8 @@ public void shouldDeleteAcrossIndex() { .as(StepVerifier::create)// .verifyComplete(); - operations.indexOps(thisIndex).refresh().then(operations.indexOps(thatIndex).refresh()).block(); + blocking(operations.indexOps(thisIndex)).refresh(); + blocking(operations.indexOps(thatIndex)).refresh(); Query query = getBuilderWithTermQuery("message", "test").build(); @@ -651,7 +653,8 @@ public void shouldDeleteAcrossIndexWhenNoMatchingDataPresent() { .as(StepVerifier::create)// .verifyComplete(); - operations.indexOps(thisIndex).refresh().then(operations.indexOps(thatIndex).refresh()).block(); + blocking(operations.indexOps(thisIndex)).refresh(); + blocking(operations.indexOps(thatIndex)).refresh(); Query query = getBuilderWithTermQuery("message", "negative").build(); @@ -876,7 +879,7 @@ void searchShouldReturnSeqNoPrimaryTerm() { original.setMessage("It's fine"); OptimisticEntity saved = operations.save(original).block(); - operations.indexOps(OptimisticEntity.class).refresh().block(); + blocking(operations.indexOps(OptimisticEntity.class)).refresh(); operations .search(searchQueryForOne(saved.getId()), OptimisticEntity.class, @@ -1081,14 +1084,16 @@ void shouldReturnInformationListOfAllIndices() { String indexName = indexNameProvider.indexName(); String aliasName = indexName + "-alias"; ReactiveIndexOperations indexOps = operations.indexOps(EntityWithSettingsAndMappingsReactive.class); + var blockingIndexOps = blocking(indexOps); // beforeEach uses SampleEntity, so recreate the index here - indexOps.delete().then(indexOps.createWithMapping()).block(); + blockingIndexOps.delete(); + blockingIndexOps.createWithMapping(); AliasActionParameters parameters = AliasActionParameters.builder().withAliases(aliasName).withIndices(indexName) .withIsHidden(false).withIsWriteIndex(false).withRouting("indexrouting").withSearchRouting("searchrouting") .build(); - indexOps.alias(new AliasActions(new AliasAction.Add(parameters))).block(); + blockingIndexOps.alias(new AliasActions(new AliasAction.Add(parameters))); indexOps.getInformation().as(StepVerifier::create).consumeNextWith(indexInformation -> { assertThat(indexInformation.getName()).isEqualTo(indexName); diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ReactivePointInTimeIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ReactivePointInTimeIntegrationTests.java index 0a1addf4f..12cf3d0a4 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/ReactivePointInTimeIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/ReactivePointInTimeIntegrationTests.java @@ -16,6 +16,7 @@ package org.springframework.data.elasticsearch.core; import static org.assertj.core.api.Assertions.*; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; import java.time.Duration; import java.util.List; @@ -49,19 +50,17 @@ public abstract class ReactivePointInTimeIntegrationTests { @Autowired ReactiveElasticsearchOperations operations; @Autowired IndexNameProvider indexNameProvider; - @Nullable ReactiveIndexOperations indexOperations; @BeforeEach void setUp() { indexNameProvider.increment(); - indexOperations = operations.indexOps(SampleEntity.class); - indexOperations.createWithMapping().block(); + blocking(operations.indexOps(SampleEntity.class)).createWithMapping(); } @Test @Order(Integer.MAX_VALUE) void cleanup() { - operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*')).delete().block(); + blocking(operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*'))).delete(); } @Test // #1684 diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ReactiveReindexIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ReactiveReindexIntegrationTests.java index acd6b88bb..82433cf77 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/ReactiveReindexIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/ReactiveReindexIntegrationTests.java @@ -16,6 +16,7 @@ package org.springframework.data.elasticsearch.core; import static org.assertj.core.api.Assertions.*; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; import static org.springframework.data.elasticsearch.utils.IdGenerator.*; import reactor.test.StepVerifier; @@ -54,13 +55,13 @@ public abstract class ReactiveReindexIntegrationTests { public void beforeEach() { indexNameProvider.increment(); - operations.indexOps(Entity.class).createWithMapping().block(); + blocking(operations.indexOps(Entity.class)).createWithMapping(); } @Test @Order(java.lang.Integer.MAX_VALUE) void cleanup() { - operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + "*")).delete().block(); + blocking(operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*'))).delete(); } @Test diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ReactiveSearchTemplateIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ReactiveSearchTemplateIntegrationTests.java index 1a8f57369..ed3beceed 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/ReactiveSearchTemplateIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/ReactiveSearchTemplateIntegrationTests.java @@ -17,6 +17,7 @@ import static org.assertj.core.api.Assertions.*; import static org.skyscreamer.jsonassert.JSONAssert.*; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; import reactor.test.StepVerifier; @@ -74,19 +75,17 @@ public abstract class ReactiveSearchTemplateIntegrationTests { @Autowired ReactiveElasticsearchOperations operations; @Autowired IndexNameProvider indexNameProvider; - @Nullable ReactiveIndexOperations indexOperations; @BeforeEach void setUp() { indexNameProvider.increment(); - indexOperations = operations.indexOps(Person.class); - indexOperations.createWithMapping().block(); + blocking(operations.indexOps(Person.class)).createWithMapping(); } @Test @Order(Integer.MAX_VALUE) void cleanup() { - operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*')).delete().block(); + blocking(operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*'))).delete(); } @Test // #1891 diff --git a/src/test/java/org/springframework/data/elasticsearch/core/event/ReactiveCallbackIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/event/ReactiveCallbackIntegrationTests.java index 6f4eca31d..199908bd7 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/event/ReactiveCallbackIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/event/ReactiveCallbackIntegrationTests.java @@ -16,6 +16,7 @@ package org.springframework.data.elasticsearch.core.event; import static org.assertj.core.api.Assertions.*; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; @@ -29,7 +30,6 @@ import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations; -import org.springframework.data.elasticsearch.core.ReactiveIndexOperations; import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest; import org.springframework.data.elasticsearch.utils.IndexNameProvider; @@ -76,14 +76,13 @@ public Mono onAft @BeforeEach void setUp() { indexNameProvider.increment(); - ReactiveIndexOperations indexOps = operations.indexOps(SampleEntity.class); - indexOps.createWithMapping().block(); + blocking(operations.indexOps(SampleEntity.class)).createWithMapping(); } @Test @Order(java.lang.Integer.MAX_VALUE) void cleanup() { - operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + "*")).delete().block(); + blocking(operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*'))).delete(); } @Test // DATES-68 diff --git a/src/test/java/org/springframework/data/elasticsearch/core/index/ReactiveIndexOperationsIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/index/ReactiveIndexOperationsIntegrationTests.java index d3265c7a9..7b3e0f6d3 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/index/ReactiveIndexOperationsIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/index/ReactiveIndexOperationsIntegrationTests.java @@ -17,6 +17,7 @@ import static org.assertj.core.api.Assertions.*; import static org.skyscreamer.jsonassert.JSONAssert.*; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; @@ -36,7 +37,7 @@ import org.springframework.data.elasticsearch.annotations.FieldType; import org.springframework.data.elasticsearch.annotations.Mapping; import org.springframework.data.elasticsearch.annotations.Setting; -import org.springframework.data.elasticsearch.core.AbstractReactiveElasticsearchTemplate; +import org.springframework.data.elasticsearch.core.IndexOperations; import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations; import org.springframework.data.elasticsearch.core.ReactiveIndexOperations; import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; @@ -53,17 +54,19 @@ public abstract class ReactiveIndexOperationsIntegrationTests { @Autowired private ReactiveElasticsearchOperations operations; @Autowired private IndexNameProvider indexNameProvider; private ReactiveIndexOperations indexOperations; + private IndexOperations blockingIndexOperations; @BeforeEach void setUp() { indexNameProvider.increment(); indexOperations = operations.indexOps(IndexCoordinates.of(indexNameProvider.indexName())); + blockingIndexOperations = blocking(indexOperations); } @Test @Order(java.lang.Integer.MAX_VALUE) void cleanup() { - operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + "*")).delete().block(); + blocking(operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*'))).delete(); } @Test // DATAES-678 @@ -167,41 +170,28 @@ public void shouldCreateIndexUsingServerDefaultConfiguration() { @Test // DATAES-678 void shouldDeleteIfItExists() { - indexOperations.create().block(); + blockingIndexOperations.create(); - indexOperations.delete() // - .as(StepVerifier::create) // - .expectNext(true) // - .verifyComplete(); + assertThat(blockingIndexOperations.delete()).isTrue(); } @Test // DATAES-678 void shouldReturnFalseOnDeleteIfItDoesNotExist() { - - indexOperations.delete() // - .as(StepVerifier::create) // - .expectNext(false) // - .verifyComplete(); + assertThat(blockingIndexOperations.delete()).isFalse(); } @Test // DATAES-678 void shouldReturnExistsTrueIfIndexDoesExist() { - indexOperations.create().block(); + blockingIndexOperations.create(); - indexOperations.exists() // - .as(StepVerifier::create) // - .expectNext(true) // - .verifyComplete(); + assertThat(blockingIndexOperations.exists()).isTrue(); } @Test // DATAES-678 void shouldReturnExistsFalseIfIndexDoesNotExist() { - indexOperations.exists() // - .as(StepVerifier::create) // - .expectNext(false) // - .verifyComplete(); + assertThat(blockingIndexOperations.exists()).isFalse(); } @Test // DATAES-678 @@ -344,8 +334,8 @@ void shouldGetAliasData() { aliasActions.add(new AliasAction.Add(AliasActionParameters.builder() .withIndices(indexOperations.getIndexCoordinates().getIndexNames()).withAliases("aliasA", "aliasB").build())); - assertThat(indexOperations.create().block()).isTrue(); - assertThat(indexOperations.alias(aliasActions).block()).isTrue(); + assertThat(blockingIndexOperations.create()).isTrue(); + assertThat(blockingIndexOperations.alias(aliasActions)).isTrue(); indexOperations.getAliases("aliasA") // .as(StepVerifier::create) // diff --git a/src/test/java/org/springframework/data/elasticsearch/core/index/ReactiveIndexTemplateIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/index/ReactiveIndexTemplateIntegrationTests.java index 4303fc8ed..14fcce438 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/index/ReactiveIndexTemplateIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/index/ReactiveIndexTemplateIntegrationTests.java @@ -17,6 +17,7 @@ import static org.assertj.core.api.Assertions.*; import static org.skyscreamer.jsonassert.JSONAssert.*; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; import reactor.test.StepVerifier; @@ -36,7 +37,7 @@ import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; import org.springframework.data.elasticsearch.annotations.Setting; -import org.springframework.data.elasticsearch.core.AbstractReactiveElasticsearchTemplate; +import org.springframework.data.elasticsearch.core.IndexOperations; import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations; import org.springframework.data.elasticsearch.core.ReactiveIndexOperations; import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; @@ -56,25 +57,27 @@ public abstract class ReactiveIndexTemplateIntegrationTests { @Autowired private ReactiveElasticsearchOperations operations; @Autowired private IndexNameProvider indexNameProvider; private ReactiveIndexOperations indexOperations; + private IndexOperations blockingIndexOperations; @BeforeEach void setUp() { indexNameProvider.increment(); indexOperations = operations.indexOps(IndexCoordinates.of(indexNameProvider.indexName())); + blockingIndexOperations = blocking(indexOperations); } @Test @Order(Integer.MAX_VALUE) void cleanup() { - operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + "*")).delete().block(); + blocking(operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*'))).delete(); } @Test // DATAES-612 void shouldPutTemplate() { - org.springframework.data.elasticsearch.core.document.Document mapping = indexOperations - .createMapping(TemplateClass.class).block(); - Settings settings = indexOperations.createSettings(TemplateClass.class).block(); + org.springframework.data.elasticsearch.core.document.Document mapping = blockingIndexOperations + .createMapping(TemplateClass.class); + Settings settings = blockingIndexOperations.createSettings(TemplateClass.class); AliasActions aliasActions = new AliasActions( new AliasAction.Add(AliasActionParameters.builderForTemplate().withAliases("alias1", "alias2").build())); @@ -86,7 +89,7 @@ void shouldPutTemplate() { .withVersion(42) // .build(); - Boolean acknowledged = indexOperations.putTemplate(putTemplateRequest).block(); + Boolean acknowledged = blockingIndexOperations.putTemplate(putTemplateRequest); assertThat(acknowledged).isTrue(); } @@ -94,11 +97,11 @@ void shouldPutTemplate() { @DisplayName("should create component template") void shouldCreateComponentTemplate() { - ReactiveIndexOperations indexOps = operations.indexOps(IndexCoordinates.of("dont-care")); + var blockingIndexOps = blocking(operations.indexOps(IndexCoordinates.of("dont-care"))); - org.springframework.data.elasticsearch.core.document.Document mapping = indexOps.createMapping(TemplateClass.class) - .block(); - Settings settings = indexOps.createSettings(TemplateClass.class).block(); + org.springframework.data.elasticsearch.core.document.Document mapping = blockingIndexOps + .createMapping(TemplateClass.class); + Settings settings = blockingIndexOps.createSettings(TemplateClass.class); AliasActions aliasActions = new AliasActions( // new AliasAction.Add(AliasActionParameters.builderForTemplate() // @@ -115,7 +118,7 @@ void shouldCreateComponentTemplate() { .build() // ).build(); - boolean acknowledged = indexOps.putComponentTemplate(putComponentTemplateRequest).block(); + boolean acknowledged = blockingIndexOps.putComponentTemplate(putComponentTemplateRequest); assertThat(acknowledged).isTrue(); } @@ -123,11 +126,11 @@ void shouldCreateComponentTemplate() { @Test // #1458 @DisplayName("should get component template") void shouldGetComponentTemplate() throws JSONException { - ReactiveIndexOperations indexOps = operations.indexOps(IndexCoordinates.of("dont-care")); + var blockingIndexOps = blocking(operations.indexOps(IndexCoordinates.of("dont-care"))); - org.springframework.data.elasticsearch.core.document.Document mapping = indexOps.createMapping(TemplateClass.class) - .block(); - Settings settings = indexOps.createSettings(TemplateClass.class).block(); + org.springframework.data.elasticsearch.core.document.Document mapping = blockingIndexOps + .createMapping(TemplateClass.class); + Settings settings = blockingIndexOps.createSettings(TemplateClass.class); var filterQuery = CriteriaQuery.builder(Criteria.where("message").is("foo")).build(); AliasActions aliasActions = new AliasActions(new AliasAction.Add(AliasActionParameters.builderForTemplate() // @@ -145,12 +148,12 @@ void shouldGetComponentTemplate() throws JSONException { .build()) // .build(); - boolean acknowledged = indexOps.putComponentTemplate(putComponentTemplateRequest).block(); + boolean acknowledged = blockingIndexOps.putComponentTemplate(putComponentTemplateRequest); assertThat(acknowledged).isTrue(); GetComponentTemplateRequest getComponentTemplateRequest = new GetComponentTemplateRequest( putComponentTemplateRequest.name()); - var componentTemplates = indexOps.getComponentTemplate(getComponentTemplateRequest).collectList().block(); + var componentTemplates = blockingIndexOps.getComponentTemplate(getComponentTemplateRequest); assertThat(componentTemplates).isNotNull().hasSize(1); var returnedComponentTemplate = componentTemplates.iterator().next(); @@ -173,26 +176,26 @@ void shouldGetComponentTemplate() throws JSONException { @DisplayName("should delete component template") void shouldDeleteComponentTemplate() { - ReactiveIndexOperations indexOps = operations.indexOps(IndexCoordinates.of("dont-care")); + var blockingIndexOps = blocking(operations.indexOps(IndexCoordinates.of("dont-care"))); String templateName = "template" + UUID.randomUUID().toString(); var putComponentTemplateRequest = PutComponentTemplateRequest.builder() // .withName(templateName) // .withTemplateData(ComponentTemplateRequestData.builder() // - .withSettings(indexOps.createSettings(TemplateClass.class).block()) // + .withSettings(blockingIndexOps.createSettings(TemplateClass.class)) // .build() // ).build(); ExistsComponentTemplateRequest existsComponentTemplateRequest = new ExistsComponentTemplateRequest(templateName); - boolean acknowledged = indexOps.putComponentTemplate(putComponentTemplateRequest).block(); + boolean acknowledged = blockingIndexOps.putComponentTemplate(putComponentTemplateRequest); assertThat(acknowledged).isTrue(); - boolean exists = indexOps.existsComponentTemplate(existsComponentTemplateRequest).block(); + boolean exists = blockingIndexOps.existsComponentTemplate(existsComponentTemplateRequest); assertThat(exists).isTrue(); - acknowledged = indexOps.deleteComponentTemplate(new DeleteComponentTemplateRequest(templateName)).block(); + acknowledged = blockingIndexOps.deleteComponentTemplate(new DeleteComponentTemplateRequest(templateName)); assertThat(acknowledged).isTrue(); - exists = indexOps.existsComponentTemplate(existsComponentTemplateRequest).block(); + exists = blockingIndexOps.existsComponentTemplate(existsComponentTemplateRequest); assertThat(exists).isFalse(); } @@ -200,10 +203,10 @@ void shouldDeleteComponentTemplate() { @DisplayName("should put, get and delete index template with template") void shouldPutGetAndDeleteIndexTemplateWithTemplate() { - ReactiveIndexOperations indexOps = operations.indexOps(IndexCoordinates.of("dont-care")); - org.springframework.data.elasticsearch.core.document.Document mapping = indexOps.createMapping(TemplateClass.class) - .block(); - Settings settings = indexOps.createSettings(TemplateClass.class).block(); + var blockingIndexOps = blocking(operations.indexOps(IndexCoordinates.of("dont-care"))); + org.springframework.data.elasticsearch.core.document.Document mapping = blockingIndexOps + .createMapping(TemplateClass.class); + Settings settings = blockingIndexOps.createSettings(TemplateClass.class); AliasActions aliasActions = new AliasActions( // new AliasAction.Add(AliasActionParameters.builderForTemplate() // @@ -219,20 +222,20 @@ void shouldPutGetAndDeleteIndexTemplateWithTemplate() { .withAliasActions(aliasActions) // .build(); - Boolean acknowledged = indexOps.putIndexTemplate(putIndexTemplateRequest).block(); + Boolean acknowledged = blockingIndexOps.putIndexTemplate(putIndexTemplateRequest); assertThat(acknowledged).isTrue(); - var exists = indexOps.existsIndexTemplate(indexTemplateName).block(); + var exists = blockingIndexOps.existsIndexTemplate(indexTemplateName); assertThat(exists).isTrue(); - var indexTemplates = indexOps.getIndexTemplate(indexTemplateName).collectList().block(); + var indexTemplates = blockingIndexOps.getIndexTemplate(indexTemplateName); assertThat(indexTemplates).hasSize(1); // delete template - acknowledged = indexOps.deleteIndexTemplate(indexTemplateName).block(); + acknowledged = blockingIndexOps.deleteIndexTemplate(indexTemplateName); assertThat(acknowledged).isTrue(); - exists = indexOps.existsIndexTemplate(indexTemplateName).block(); + exists = blockingIndexOps.existsIndexTemplate(indexTemplateName); assertThat(exists).isFalse(); } @@ -240,11 +243,11 @@ void shouldPutGetAndDeleteIndexTemplateWithTemplate() { @DisplayName("should put, get and delete index template of components") void shouldPutGetAndDeleteIndexTemplateOfComponents() { - ReactiveIndexOperations indexOps = operations.indexOps(IndexCoordinates.of("dont-care")); + var blockingIndexOps = blocking(operations.indexOps(IndexCoordinates.of("dont-care"))); - org.springframework.data.elasticsearch.core.document.Document mapping = indexOps.createMapping(TemplateClass.class) - .block(); - Settings settings = indexOps.createSettings(TemplateClass.class).block(); + org.springframework.data.elasticsearch.core.document.Document mapping = blockingIndexOps + .createMapping(TemplateClass.class); + Settings settings = blockingIndexOps.createSettings(TemplateClass.class); var filterQuery = CriteriaQuery.builder(Criteria.where("message").is("foo")).build(); AliasActions aliasActions = new AliasActions(new AliasAction.Add(AliasActionParameters.builderForTemplate() // @@ -260,7 +263,7 @@ void shouldPutGetAndDeleteIndexTemplateOfComponents() { .build()) // .build(); - Boolean acknowledged = indexOps.putComponentTemplate(putComponentTemplateRequestMapping).block(); + Boolean acknowledged = blockingIndexOps.putComponentTemplate(putComponentTemplateRequestMapping); assertThat(acknowledged).isTrue(); PutComponentTemplateRequest putComponentTemplateRequestSettings = PutComponentTemplateRequest.builder() // @@ -271,7 +274,7 @@ void shouldPutGetAndDeleteIndexTemplateOfComponents() { .build()) // .build(); - acknowledged = indexOps.putComponentTemplate(putComponentTemplateRequestSettings).block(); + acknowledged = blockingIndexOps.putComponentTemplate(putComponentTemplateRequestSettings); assertThat(acknowledged).isTrue(); PutComponentTemplateRequest putComponentTemplateRequestAliases = PutComponentTemplateRequest.builder() // @@ -282,7 +285,7 @@ void shouldPutGetAndDeleteIndexTemplateOfComponents() { .build()) // .build(); - acknowledged = indexOps.putComponentTemplate(putComponentTemplateRequestAliases).block(); + acknowledged = blockingIndexOps.putComponentTemplate(putComponentTemplateRequestAliases); assertThat(acknowledged).isTrue(); var indexTemplateName = "test-index-template"; @@ -294,24 +297,24 @@ void shouldPutGetAndDeleteIndexTemplateOfComponents() { .withComposedOf(composedOf) // .build(); - acknowledged = indexOps.putIndexTemplate(putIndexTemplateRequest).block(); + acknowledged = blockingIndexOps.putIndexTemplate(putIndexTemplateRequest); assertThat(acknowledged).isTrue(); - var indexTemplates = indexOps.getIndexTemplate(indexTemplateName).collectList().block(); + var indexTemplates = blockingIndexOps.getIndexTemplate(indexTemplateName); assertThat(indexTemplates).hasSize(1); assertThat(indexTemplates.get(0).templateData().composedOf()).isEqualTo(composedOf); // delete template and components - acknowledged = indexOps.deleteIndexTemplate(indexTemplateName).block(); + acknowledged = blockingIndexOps.deleteIndexTemplate(indexTemplateName); assertThat(acknowledged).isTrue(); - acknowledged = indexOps - .deleteComponentTemplate(new DeleteComponentTemplateRequest("test-component-template-mapping")).block(); + acknowledged = blockingIndexOps + .deleteComponentTemplate(new DeleteComponentTemplateRequest("test-component-template-mapping")); assertThat(acknowledged).isTrue(); - acknowledged = indexOps - .deleteComponentTemplate(new DeleteComponentTemplateRequest("test-component-template-settings")).block(); + acknowledged = blockingIndexOps + .deleteComponentTemplate(new DeleteComponentTemplateRequest("test-component-template-settings")); assertThat(acknowledged).isTrue(); - acknowledged = indexOps - .deleteComponentTemplate(new DeleteComponentTemplateRequest("test-component-template-aliases")).block(); + acknowledged = blockingIndexOps + .deleteComponentTemplate(new DeleteComponentTemplateRequest("test-component-template-aliases")); assertThat(acknowledged).isTrue(); } @@ -329,9 +332,11 @@ void shouldReturnNullOnNonExistingGetTemplate() { @Test // DATAES-612 void shouldGetTemplate() throws JSONException { - org.springframework.data.elasticsearch.core.document.Document mapping = indexOperations - .createMapping(TemplateClass.class).block(); - Settings settings = indexOperations.createSettings(TemplateClass.class).block(); + var blockingIndexOperations = blocking(indexOperations); + + org.springframework.data.elasticsearch.core.document.Document mapping = blockingIndexOperations + .createMapping(TemplateClass.class); + Settings settings = blockingIndexOperations.createSettings(TemplateClass.class); AliasActions aliasActions = new AliasActions( new AliasAction.Add(AliasActionParameters.builderForTemplate().withAliases("alias1", "alias2").build())); @@ -343,11 +348,11 @@ void shouldGetTemplate() throws JSONException { .withVersion(42) // .build(); - Boolean acknowledged = indexOperations.putTemplate(putTemplateRequest).block(); + Boolean acknowledged = blockingIndexOperations.putTemplate(putTemplateRequest); assertThat(acknowledged).isTrue(); GetTemplateRequest getTemplateRequest = new GetTemplateRequest(putTemplateRequest.getName()); - TemplateData templateData = indexOperations.getTemplate(getTemplateRequest).block(); + TemplateData templateData = blockingIndexOperations.getTemplate(getTemplateRequest); SoftAssertions softly = new SoftAssertions(); softly.assertThat(templateData).isNotNull(); @@ -371,7 +376,7 @@ void shouldCheckTemplateExists() { String templateName = "template" + UUID.randomUUID().toString(); ExistsTemplateRequest existsTemplateRequest = new ExistsTemplateRequest(templateName); - boolean exists = indexOperations.existsTemplate(existsTemplateRequest).block(); + boolean exists = blockingIndexOperations.existsTemplate(existsTemplateRequest); assertThat(exists).isFalse(); PutTemplateRequest putTemplateRequest = PutTemplateRequest.builder(templateName, "log-*") // @@ -379,10 +384,10 @@ void shouldCheckTemplateExists() { .withVersion(42) // .build(); - boolean acknowledged = indexOperations.putTemplate(putTemplateRequest).block(); + boolean acknowledged = blockingIndexOperations.putTemplate(putTemplateRequest); assertThat(acknowledged).isTrue(); - exists = indexOperations.existsTemplate(existsTemplateRequest).block(); + exists = blockingIndexOperations.existsTemplate(existsTemplateRequest); assertThat(exists).isTrue(); } @@ -397,16 +402,16 @@ void shouldDeleteTemplate() { .withVersion(42) // .build(); - boolean acknowledged = indexOperations.putTemplate(putTemplateRequest).block(); + boolean acknowledged = blockingIndexOperations.putTemplate(putTemplateRequest); assertThat(acknowledged).isTrue(); - boolean exists = indexOperations.existsTemplate(existsTemplateRequest).block(); + boolean exists = blockingIndexOperations.existsTemplate(existsTemplateRequest); assertThat(exists).isTrue(); - acknowledged = indexOperations.deleteTemplate(new DeleteTemplateRequest(templateName)).block(); + acknowledged = blockingIndexOperations.deleteTemplate(new DeleteTemplateRequest(templateName)); assertThat(acknowledged).isTrue(); - exists = indexOperations.existsTemplate(existsTemplateRequest).block(); + exists = blockingIndexOperations.existsTemplate(existsTemplateRequest); assertThat(exists).isFalse(); } diff --git a/src/test/java/org/springframework/data/elasticsearch/core/mapping/ReactiveFieldNamingStrategyIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/mapping/ReactiveFieldNamingStrategyIntegrationTests.java index 131fbcf81..f8f64b372 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/mapping/ReactiveFieldNamingStrategyIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/mapping/ReactiveFieldNamingStrategyIntegrationTests.java @@ -15,6 +15,8 @@ */ package org.springframework.data.elasticsearch.core.mapping; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; + import reactor.test.StepVerifier; import org.junit.jupiter.api.BeforeEach; @@ -27,7 +29,6 @@ import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations; -import org.springframework.data.elasticsearch.core.ReactiveIndexOperations; import org.springframework.data.elasticsearch.core.query.Query; import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest; import org.springframework.data.elasticsearch.utils.IndexNameProvider; @@ -45,15 +46,15 @@ public abstract class ReactiveFieldNamingStrategyIntegrationTests { @BeforeEach void setUp() { indexNameProvider.increment(); - ReactiveIndexOperations indexOps = this.operations.indexOps(Entity.class); - indexOps.delete() // - .then(indexOps.createWithMapping()).block(); + var indexOps = blocking(operations.indexOps(Entity.class)); + indexOps.delete(); + indexOps.createWithMapping(); } @Test @Order(java.lang.Integer.MAX_VALUE) void cleanup() { - operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + "*")).delete().block(); + blocking(operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*'))).delete(); } @Test // #1565 diff --git a/src/test/java/org/springframework/data/elasticsearch/core/paginating/ReactiveSearchAfterIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/paginating/ReactiveSearchAfterIntegrationTests.java index 637b4385d..1ca402912 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/paginating/ReactiveSearchAfterIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/paginating/ReactiveSearchAfterIntegrationTests.java @@ -16,6 +16,7 @@ package org.springframework.data.elasticsearch.core.paginating; import static org.assertj.core.api.Assertions.*; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; import reactor.core.publisher.Mono; @@ -57,13 +58,13 @@ public abstract class ReactiveSearchAfterIntegrationTests { public void beforeEach() { indexNameProvider.increment(); - operations.indexOps(Entity.class).createWithMapping().block(); + blocking(operations.indexOps(Entity.class)).createWithMapping(); } @Test @Order(java.lang.Integer.MAX_VALUE) void cleanup() { - operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + "*")).delete().block(); + blocking(operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*'))).delete(); } @Test // #1143 diff --git a/src/test/java/org/springframework/data/elasticsearch/core/query/scriptedandruntimefields/ReactiveScriptedAndRuntimeFieldsIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/query/scriptedandruntimefields/ReactiveScriptedAndRuntimeFieldsIntegrationTests.java index 6676d086a..284f3db2f 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/query/scriptedandruntimefields/ReactiveScriptedAndRuntimeFieldsIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/query/scriptedandruntimefields/ReactiveScriptedAndRuntimeFieldsIntegrationTests.java @@ -16,6 +16,7 @@ package org.springframework.data.elasticsearch.core.query.scriptedandruntimefields; import static org.assertj.core.api.Assertions.*; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; import reactor.core.publisher.Flux; @@ -66,15 +67,15 @@ public abstract class ReactiveScriptedAndRuntimeFieldsIntegrationTests { void setUp() { indexNameProvider.increment(); - operations.indexOps(SomethingToBuy.class).createWithMapping().block(); - operations.indexOps(Person.class).createWithMapping().block(); - operations.indexOps(SAREntity.class).createWithMapping().block(); + blocking(operations.indexOps(SomethingToBuy.class)).createWithMapping(); + blocking(operations.indexOps(Person.class)).createWithMapping(); + blocking(operations.indexOps(SAREntity.class)).createWithMapping(); } @Test @Order(Integer.MAX_VALUE) void cleanup() { - operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*')).delete().block(); + blocking(operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*'))).delete(); } @Test // #1971 diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepositoryIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepositoryIntegrationTests.java index 69d64f4e6..40c674e58 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepositoryIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepositoryIntegrationTests.java @@ -16,6 +16,7 @@ package org.springframework.data.elasticsearch.repository.support; import static org.assertj.core.api.Assertions.*; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; import static org.springframework.data.elasticsearch.core.query.Query.*; import static org.springframework.data.elasticsearch.utils.IdGenerator.*; @@ -75,13 +76,13 @@ abstract class SimpleReactiveElasticsearchRepositoryIntegrationTests { @BeforeEach void before() { indexNameProvider.increment(); - operations.indexOps(SampleEntity.class).createWithMapping().block(); + blocking(operations.indexOps(SampleEntity.class)).createWithMapping(); } @Test @org.junit.jupiter.api.Order(Integer.MAX_VALUE) public void cleanup() { - operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + "*")).delete().block(); + blocking(operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*'))).delete(); } @Test // DATAES-519 @@ -114,7 +115,7 @@ void saveShouldComputeMultipleEntities() { @Test // DATAES-519, DATAES-767, DATAES-822 void findByIdShouldErrorIfIndexDoesNotExist() { - operations.indexOps(SampleEntity.class).delete().block(); + blocking(operations.indexOps(SampleEntity.class)).delete(); repository.findById("id-two") // .as(StepVerifier::create) // .expectError(NoSuchIndexException.class) // @@ -127,7 +128,7 @@ void findShouldRetrieveSingleEntityById() { bulkIndex(new SampleEntity("id-one"), // new SampleEntity("id-two"), // new SampleEntity("id-three")) // - .block(); + .block(); repository.findById("id-two").as(StepVerifier::create)// .consumeNextWith(it -> assertThat(it.getId()).isEqualTo("id-two")) // @@ -140,7 +141,7 @@ void findByIdShouldCompleteIfNothingFound() { bulkIndex(new SampleEntity("id-one"), // new SampleEntity("id-two"), // new SampleEntity("id-three")) // - .block(); + .block(); repository.findById("does-not-exist").as(StepVerifier::create) // .verifyComplete(); @@ -153,7 +154,7 @@ void findAllShouldReturnAllElements() { bulkIndex(IntStream.range(1, count + 1) // .mapToObj(it -> new SampleEntity(String.valueOf(it))) // .toArray(SampleEntity[]::new)) // - .block(); + .block(); repository.findAll() // .as(StepVerifier::create) // @@ -196,7 +197,7 @@ void findAllByIdShouldCompleteWhenNothingFound() { bulkIndex(new SampleEntity("id-one"), // new SampleEntity("id-two"), // new SampleEntity("id-three")) // - .block(); + .block(); repository.findAllById(Arrays.asList("can't", "touch", "this")) // .as(StepVerifier::create)// @@ -209,7 +210,7 @@ void shouldReturnFluxOfSearchHit() { bulkIndex(new SampleEntity("id-one", "message"), // new SampleEntity("id-two", "message"), // new SampleEntity("id-three", "message")) // - .block(); + .block(); repository.queryAllByMessage("message") // .as(StepVerifier::create) // @@ -224,7 +225,7 @@ void shouldReturnFluxOfSearchHitForStringQuery() { bulkIndex(new SampleEntity("id-one", "message"), // new SampleEntity("id-two", "message"), // new SampleEntity("id-three", "message")) // - .block(); + .block(); repository.queryByMessageWithString("message") // .as(StepVerifier::create) // @@ -239,7 +240,7 @@ void shouldReturnHighlightsOnAnnotatedMethod() { bulkIndex(new SampleEntity("id-one", "message"), // new SampleEntity("id-two", "message"), // new SampleEntity("id-three", "message")) // - .block(); + .block(); repository.queryAllByMessage("message") // .as(StepVerifier::create) // @@ -257,7 +258,7 @@ void shouldReturnHighlightsOnAnnotatedStringQueryMethod() { bulkIndex(new SampleEntity("id-one", "message"), // new SampleEntity("id-two", "message"), // new SampleEntity("id-three", "message")) // - .block(); + .block(); repository.queryByMessageWithString("message") // .as(StepVerifier::create) // @@ -272,7 +273,7 @@ void shouldReturnHighlightsOnAnnotatedStringQueryMethod() { @Test // DATAES-519, DATAES-767, DATAES-822 void countShouldErrorWhenIndexDoesNotExist() { - operations.indexOps(SampleEntity.class).delete().block(); + blocking(operations.indexOps(SampleEntity.class)).delete(); repository.count() // .as(StepVerifier::create) // .expectError(NoSuchIndexException.class) // @@ -284,7 +285,7 @@ void countShouldCountDocuments() { bulkIndex(new SampleEntity("id-one"), // new SampleEntity("id-two")) // - .block(); + .block(); repository.count().as(StepVerifier::create).expectNext(2L).verifyComplete(); } @@ -295,7 +296,7 @@ void existsByIdShouldReturnTrueIfExists() { bulkIndex(new SampleEntity("id-one", "message"), // new SampleEntity("id-two", "test message"), // new SampleEntity("id-three", "test test")) // - .block(); + .block(); repository.existsById("id-two") // .as(StepVerifier::create) // @@ -309,7 +310,7 @@ void existsByIdShouldReturnFalseIfNotExists() { bulkIndex(new SampleEntity("id-one", "message"), // new SampleEntity("id-two", "test message"), // new SampleEntity("id-three", "test test")) // - .block(); + .block(); repository.existsById("wrecking ball") // .as(StepVerifier::create) // @@ -350,7 +351,7 @@ void existsShouldReturnTrueIfExists() { bulkIndex(new SampleEntity("id-one", "message"), // new SampleEntity("id-two", "test message"), // new SampleEntity("id-three", "test test")) // - .block(); + .block(); repository.existsAllByMessage("message") // .as(StepVerifier::create) // @@ -364,7 +365,7 @@ void existsShouldReturnFalseIfNotExists() { bulkIndex(new SampleEntity("id-one", "message"), // new SampleEntity("id-two", "test message"), // new SampleEntity("id-three", "test test")) // - .block(); + .block(); repository.existsAllByMessage("these days") // .as(StepVerifier::create) // @@ -377,7 +378,7 @@ void deleteByIdShouldCompleteIfNothingDeleted() { bulkIndex(new SampleEntity("id-one"), // new SampleEntity("id-two")) // - .block(); + .block(); repository.deleteById("does-not-exist").as(StepVerifier::create).verifyComplete(); } @@ -448,7 +449,7 @@ void deleteAllShouldDeleteAllEntries() { bulkIndex(new SampleEntity("id-one"), // new SampleEntity("id-two"), // new SampleEntity("id-three")) // - .block(); + .block(); repository.deleteAll().as(StepVerifier::create).verifyComplete(); @@ -464,7 +465,7 @@ void derivedFinderMethodShouldBeExecutedCorrectly() { bulkIndex(new SampleEntity("id-one", "message"), // new SampleEntity("id-two", "test message"), // new SampleEntity("id-three", "test test")) // - .block(); + .block(); repository.findAllByMessageLike("test") // .as(StepVerifier::create) // @@ -478,7 +479,7 @@ void derivedFinderMethodShouldBeExecutedCorrectlyWhenGivenPublisher() { bulkIndex(new SampleEntity("id-one", "message"), // new SampleEntity("id-two", "test message"), // new SampleEntity("id-three", "test test")) // - .block(); + .block(); repository.findAllByMessage(Mono.just("test")) // .as(StepVerifier::create) // @@ -492,7 +493,7 @@ void derivedFinderWithDerivedSortMethodShouldBeExecutedCorrectly() { bulkIndex(new SampleEntity("id-one", "test", 3), // new SampleEntity("id-two", "test test", 1), // new SampleEntity("id-three", "test test", 2)) // - .block(); + .block(); repository.findAllByMessageLikeOrderByRate("test") // .as(StepVerifier::create) // @@ -508,7 +509,7 @@ void derivedFinderMethodWithSortParameterShouldBeExecutedCorrectly() { bulkIndex(new SampleEntity("id-one", "test", 3), // new SampleEntity("id-two", "test test", 1), // new SampleEntity("id-three", "test test", 2)) // - .block(); + .block(); repository.findAllByMessage("test", Sort.by(Order.asc("rate"))) // .as(StepVerifier::create) // @@ -524,7 +525,7 @@ void derivedFinderMethodWithPageableParameterShouldBeExecutedCorrectly() { bulkIndex(new SampleEntity("id-one", "test", 3), // new SampleEntity("id-two", "test test", 1), // new SampleEntity("id-three", "test test", 2)) // - .block(); + .block(); repository.findAllByMessage("test", PageRequest.of(0, 2, Sort.by(Order.asc("rate")))) // .as(StepVerifier::create) // @@ -539,7 +540,7 @@ void derivedFinderMethodReturningMonoShouldBeExecutedCorrectly() { bulkIndex(new SampleEntity("id-one", "message"), // new SampleEntity("id-two", "test message"), // new SampleEntity("id-three", "test test")) // - .block(); + .block(); repository.findFirstByMessageLike("test") // .as(StepVerifier::create) // @@ -589,7 +590,7 @@ void derivedDeleteMethodShouldBeExecutedCorrectly() { bulkIndex(new SampleEntity("id-one", "message"), // new SampleEntity("id-two", "test message"), // new SampleEntity("id-three", "test test")) // - .block(); + .block(); repository.deleteAllByMessage("message") // .as(StepVerifier::create) // @@ -606,7 +607,7 @@ void FluxOfSearchHitForArrayQuery() { bulkIndex(new SampleEntity("id-one", "message1"), // new SampleEntity("id-two", "message2"), // new SampleEntity("id-three", "message3")) // - .block(); + .block(); repository.findAllViaAnnotatedQueryByMessageIn(List.of("message1", "message3")) // .as(StepVerifier::create) // @@ -621,7 +622,7 @@ void FluxOfSearchHitForIntegerArrayQuery() { bulkIndex(new SampleEntity("id-one", "test", 3), // new SampleEntity("id-two", "test test", 1), // new SampleEntity("id-three", "test test", 2)) // - .block(); + .block(); repository.findAllViaAnnotatedQueryByRatesIn(List.of(2, 3)) // .as(StepVerifier::create) // @@ -638,7 +639,7 @@ void FluxOfSearchHitForStringAndIntegerArrayQuery() { new SampleEntity("id-three", "message3", 3), // new SampleEntity("id-four", "message4", 4), // new SampleEntity("id-five", "message5", 5)) // - .block(); + .block(); repository.findAllViaAnnotatedQueryByMessageInAndRatesIn(List.of("message5", "message3"), List.of(2, 3)) // .as(StepVerifier::create) // diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/support/querybyexample/ReactiveQueryByExampleElasticsearchExecutorIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/support/querybyexample/ReactiveQueryByExampleElasticsearchExecutorIntegrationTests.java index 02764938d..710dbc75e 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/support/querybyexample/ReactiveQueryByExampleElasticsearchExecutorIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/support/querybyexample/ReactiveQueryByExampleElasticsearchExecutorIntegrationTests.java @@ -16,6 +16,7 @@ package org.springframework.data.elasticsearch.repository.support.querybyexample; import static org.assertj.core.api.Assertions.*; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; import static org.springframework.data.elasticsearch.utils.IdGenerator.*; import reactor.test.StepVerifier; @@ -66,7 +67,7 @@ void before() { @Test // #2418 @Order(Integer.MAX_VALUE) void cleanup() { - operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + "*")).delete().block(); + blocking(operations.indexOps(IndexCoordinates.of(indexNameProvider.getPrefix() + '*'))).delete(); } @Test