To manage all the optional dependencies and related code, Simple Java Mail should be split up into modules
bbottema opened this issue · 5 comments
Currently the single main project Simple Java Mail contains all the code and optional dependencies. To better manage the code and dependencies and more clearly communicate these options to our users, Simple Java Mail should be split up into modules.
This could also solve all the cyclic dependencies between the modules and the main project.
Ugh, code coverage with Code Climate, Codacy or Coveralls seems impossible with GIT submodules. Now it seems I broke the Codacy project board as well :/
edit 02-02-2019: files a ticket with Codacy to have the boards fixen...
The project has been split up in multiple modules now, using Maven submodules.
Everything was split up in GIT module repo's as well and although it worked okay-ish, in hindsight there aren't any good reasons to keep this approach. Some things don't work as well and really it doesn't make the project easier to understand to other people.
The following Maven projects now exist in repo:
-
Maven parent and aggregate config repo - The Maven master project, which enables us to build the main project and all the modules, and allows us to have all the code in one (IntelliJ) project
- Angular App - This is the web app for simplejavamail.org
-- - Core module - Contains the builder API,
ConfigLoader
and theMailException
classes - Core Test module - Contains test utils / boilerplate code to use in other modules
-- - Simple Java Mail - This project, the main project which integrates javax Mail SMTP framework and connects all the support modules
-- - Authenticated Socks support module
- DKIM support module
- Outlook support module
- CLI support module
- Spring support module
- Angular App - This is the web app for simplejavamail.org
Next tasks:
Fix build & deploy scriptsUpdate documentation to reflect module structure- * Have the aggregated Javadoc artifact be available on javadoc.io
Move how-to-release, RELEASE etc. from the simple-java-mail module to the parent project- * Update README.MD to point to the main javadoc site
Update README.MD to point to the Travis buildRe-add coverage report in CodacyFix CLI stand-alone artifact
*) Javadoc site only starts existing after the library has been published to Maven Central.
Regarding multi modules, everything is ready for deploy to Maven Central. After deploying 6.0.0 we can fix links to the right Javadoc site.
Released in 6.0.0-rc1!
6.0.0 has released as well, finally.