[ 
https://issues.apache.org/jira/browse/JAMES-3499?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benoit Tellier closed JAMES-3499.
---------------------------------
    Fix Version/s: 3.6.0
       Resolution: Fixed

Guice modules are split from the apps, allowing a greater composition power to 
app assemblers.

> Separate Guice modules from Cassandr* apps for better reuse
> -----------------------------------------------------------
>
>                 Key: JAMES-3499
>                 URL: https://issues.apache.org/jira/browse/JAMES-3499
>             Project: James Server
>          Issue Type: Improvement
>          Components: guice
>            Reporter: Benoit Tellier
>            Priority: Major
>             Fix For: 3.6.0
>
>
> I do love JAMES-3492 contribution effort however I do have to maintain 
> several James deployments relying on ElasticSearch (version 6) that - sadly - 
> I can not migrate quickly.
> As such, I consider backporting ES6 support in a third party repository not 
> to delay in any way this ElasticSearch V7 migration work, and without 
> altering my ability to deploy new releases.
> However current project structure do not allow me today to do that, as 
> ElasticSearch guice modules are mixed with Cassandra guice modules and do 
> pull the ES7 dependency in all downstream maven modules - clashing with the 
> ES6 dependency I plan to use on my backports.
> A simple solution to this is to better split our maven modules:
>  - Have a dedicated maven module for Cassandra guice modules
>  - Have a dedicated maven module for ElasticSearch guice modules - that I 
> gonna overide in my backport
>  - Preserve the cassandra-guice module assembling the server - but with no 
> modules
>  - Have a dedicated maven module for the distributed modules (event-bus, 
> mailqueue, task manager, blobstore module chooser)
> Basically the directory structure I propose would look like:
> {code:java}
> server/container/guice/cassandra  # Guice modules for Cassandra
> server/container/guice/elasticsearch  # Guice modules for ElasticSearch
> server/container/guice/distributed  # Guice modules reusing RabbitMQ
> {code}
> Definition of done: 
>  - No guice module are defined next to a cassandra* JamesServerMain.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to