Implementation should be based on Feign Client
*Steps to implement*
- Change module source code repository structure to contain 2 sub-folders: server & client
- Change POM accordingly, create new POMs for each module
- Move the module implementation to the "server" folder
- Create a client implementation & tests
- Module structure changed
- Client is provided as a separate java library
- a Jenkins job for server & client is green
- Both server & client jars are published into the artifactory
- Docker image for server module is built correctly
- The module is available on the staging environment
- Unit tests as a must have requirement
- Add extensive documentation for client interface and usage examples.
An alternative approach is to keep all in one level repository. In this case the consumer should add a dependency on the module itself. TBD!
FYI: The lightweight version of the built artifact is published into the Nexus artifactory, not a fat one.