DATAES-840 - Introduce IndexCoordinateResolver.

Original PR: #467
This commit is contained in:
Peter-Josef Meisch
2020-06-12 08:23:41 +02:00
committed by GitHub
parent 3c44a1c969
commit aeaa27cb99
26 changed files with 971 additions and 624 deletions

View File

@@ -492,6 +492,7 @@ class ElasticsearchPartQueryTests {
private String getQueryBuilder(String methodName, Class<?>[] parameterClasses, Object[] parameters)
throws NoSuchMethodException {
Method method = SampleRepository.class.getMethod(methodName, parameterClasses);
ElasticsearchQueryMethod queryMethod = new ElasticsearchQueryMethod(method,
new DefaultRepositoryMetadata(SampleRepository.class), new SpelAwareProxyProjectionFactory(),

View File

@@ -2781,13 +2781,23 @@ public abstract class ElasticsearchTemplateTests {
AliasMetaData aliasMetaData1 = aliasMetaData.get(0);
assertThat(aliasMetaData1).isNotNull();
assertThat(aliasMetaData1.alias()).isEqualTo(alias1);
assertThat(aliasMetaData1.indexRouting()).isEqualTo("0");
if (aliasMetaData1.alias().equals(alias1)) {
assertThat(aliasMetaData1.indexRouting()).isEqualTo("0");
} else if (aliasMetaData1.alias().equals(alias2)) {
assertThat(aliasMetaData1.searchRouting()).isEqualTo("1");
} else {
fail("unknown alias");
}
AliasMetaData aliasMetaData2 = aliasMetaData.get(1);
assertThat(aliasMetaData2).isNotNull();
assertThat(aliasMetaData2.alias()).isEqualTo(alias2);
assertThat(aliasMetaData2.searchRouting()).isEqualTo("1");
if (aliasMetaData2.alias().equals(alias1)) {
assertThat(aliasMetaData2.indexRouting()).isEqualTo("0");
} else if (aliasMetaData2.alias().equals(alias2)) {
assertThat(aliasMetaData2.searchRouting()).isEqualTo("1");
} else {
fail("unknown alias");
}
// cleanup
indexOperations.removeAlias(aliasQuery1);

View File

@@ -87,35 +87,37 @@ public class DynamicIndexEntityTests {
int initialCallsCount = indexNameProvider.callsCount;
indexNameProvider.setIndexName("index1");
indexNameProvider.indexName = "index1";
repository.save(new DynamicIndexEntity());
assertThat(indexNameProvider.callsCount > initialCallsCount).isTrue();
assertThat(repository.count()).isEqualTo(1L);
indexNameProvider.setIndexName("index2");
indexNameProvider.indexName = "index2";
assertThat(repository.count()).isEqualTo(0L);
}
@Test // DATAES-821
void indexOpsShouldUseDynamicallyProvidedName() {
indexNameProvider.setIndexName("test-dynamic");
IndexOperations indexOps = operations.indexOps(DynamicIndexEntity.class);
indexNameProvider.indexName = "index-dynamic";
indexNameProvider.callsCount = 0;
int initialCallsCount = indexNameProvider.callsCount;
operations.indexOps(IndexCoordinates.of("index-dynamic")).delete();
IndexOperations indexOps = operations.indexOps(DynamicIndexEntity.class);
indexOps.create();
indexOps.refresh();
indexOps.refresh();
indexOps.delete();
indexOps.delete(); // internally calls doExists
assertThat(indexNameProvider.callsCount - initialCallsCount).isEqualTo(4);
assertThat(indexNameProvider.callsCount).isGreaterThan(0);
}
static class IndexNameProvider {
private String indexName;
int callsCount;
private int callsCount;
public String getIndexName() {
@@ -123,10 +125,6 @@ public class DynamicIndexEntityTests {
return indexName;
}
public void setIndexName(String indexName) {
this.indexName = indexName;
}
}
@Document(indexName = "#{@indexNameProvider.getIndexName()}", createIndex = false)