Rene Cordier created JAMES-2717:
-----------------------------------
Summary: [ES] Replace EmbeddedElasticSearch by Docker ES
Key: JAMES-2717
URL: https://issues.apache.org/jira/browse/JAMES-2717
Project: James Server
Issue Type: New Feature
Components: elasticsearch
Reporter: Rene Cordier
Fix For: 3.4.0
EmbeddedElasticSearch is used for creating ES 'org.elasticsearch.client.Client'
from embedded ES node. The job is done in 'TestingClientProvider'.
It can be replaced by 'ClientProviderImpl' connects to a docker ES.
There are places where EmbeddedElasticSearch is used:
* server/protocols/webadmin-integration-test UnauthorizedEndpointsTest
* server/protocols/jmap-integration-testing: CassandraStepdefs, RabbitMQStepdefs
* mpt/impl/imap-mailbox/elasticsearch ElasticSearchUidSearchOnIndexTest
* backends-common/elasticsearch ElasticSearchIndexerTest
* mailbox/elasticsearch ElasticSearchIntegrationTest
* mailbox/plugin/quota-search-elasticsearch
ElasticSearchQuotaMailboxListenerTest
* server/container/guice/cassandra-guice many places
_Steps_:
* Extract a DockerElasticSearch based a DockerGenericContainer instance (&
associated singleton) + wait strategy
* Provide junit 4 rules & junit 5 extension - allowing test to retrieve clients
* Expose a method for awaiting an ES docker is up + await indexation is done
(akka flush)
* Define a test isolation strategy. Proposal: random index & aliases names, no
data removal. Alternative: list then delete index & aliases.
_Note_:
* Need to optimize ES docker life cycle management (e.g: using Singleton
instance like DockerCassandraSingleton)
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]