DATAES-809 - Creation of test data may lead to duplicate values.

Original PR: #443
This commit is contained in:
Peter-Josef Meisch 2020-04-30 08:18:29 +02:00 committed by GitHub
parent 15f51c5151
commit b278bf9819
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 2 deletions

View File

@ -21,9 +21,13 @@ import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.dao.DataAccessResourceFailureException;
import org.springframework.data.elasticsearch.client.ClientConfiguration;
import org.springframework.data.elasticsearch.client.RestClients;
import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
/**
* Configuration for Spring Data Elasticsearch using
@ -56,4 +60,22 @@ public class ElasticsearchRestTemplateConfiguration extends AbstractElasticsearc
.build()) //
.rest();
}
@Override
public ElasticsearchOperations elasticsearchOperations(ElasticsearchConverter elasticsearchConverter) {
RestHighLevelClient client = elasticsearchClient();
return new ElasticsearchRestTemplate(client, elasticsearchConverter) {
@Override
public <T> T execute(ClientCallback<T> callback) {
try {
return super.execute(callback);
} catch (DataAccessResourceFailureException e) {
try {
Thread.sleep(1_000);
} catch (InterruptedException ignored) {}
return super.execute(callback);
}
}
};
}
}

View File

@ -678,14 +678,18 @@ public class SimpleElasticsearchRepositoryTests {
}
private static List<SampleEntity> createSampleEntitiesWithMessage(String message, int numberOfEntities) {
List<SampleEntity> sampleEntities = new ArrayList<>();
long idBase = (long) (Math.random() * 100);
long versionBase = System.currentTimeMillis();
for (int i = 0; i < numberOfEntities; i++) {
String documentId = randomNumeric(5);
String documentId = String.valueOf(idBase + i);
SampleEntity sampleEntity = new SampleEntity();
sampleEntity.setId(documentId);
sampleEntity.setMessage(message);
sampleEntity.setRate(2);
sampleEntity.setVersion(System.currentTimeMillis());
sampleEntity.setVersion(versionBase + i);
sampleEntities.add(sampleEntity);
}
return sampleEntities;