[ 
https://issues.apache.org/jira/browse/JAMES-3259?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17151843#comment-17151843
 ] 

David Leangen commented on JAMES-3259:
--------------------------------------

Hi there.

As I also wrote elsewhere, after having gone through the specs a bit, and after 
following some of the discussions between you all and reading through the code 
a little, I am now starting to think that modularization of James would not be 
the best way forward in the short term.

Instead, I am now starting to think that based on the "hexogonal architecture" 
that [~btellier] has been mentioning, we instead focus our efforts on 
clarifying only the REST APIs. That way what is internal to James stays 
internal, and it doesn't matter to anybody except James Developers.

Operators and Integrators don't have to care at all.

So it provides a practical and quicker way forward, and we can drop the whole 
issue (for now) regarding API development.

I have never worked this way before, but I am growing on the idea.

> Reorganize source code
> ----------------------
>
>                 Key: JAMES-3259
>                 URL: https://issues.apache.org/jira/browse/JAMES-3259
>             Project: James Server
>          Issue Type: Improvement
>    Affects Versions: 3.5.0
>            Reporter: Matthieu Baechler
>            Priority: Major
>
> I want to suggest a new organization of the source-code (I won't handle every 
> concerns but some important ones I have about the current state).
> I would like the first level to be:
> {code}
> core (domain code)
> data (that we should rename)
> docs
> extensions (containing mdn and third-party for example)
> infrastructure (containing backends-common, event-sourcing, json, metrics)
> mailbox
> mailet
> products (containing server/container/cli 
> server/container/guice/cassandra-rabbitmq-guice)
> protocols
> server
> testing (containing mpt)
> {code}
> I'm not sure it's the best organization but:
> * it allows to see easily what james most important concepts are
> * put technical details into a common sub-tree
> * have products a top level thing instead of a hidden one
> * group what we think are extensions somewhere
> * put functional testing sources somewhere that is easy to find (because a 
> lot of people starts by reading functional tests)
> What do you think?



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

---------------------------------------------------------------------
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