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: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to