The following chapters cover examples of frequent cross-cutting concerns (a.k.a. aspects in some programming languages) Fill in these chapters if there is NO building block that covers this aspect. If some of the concepts are not relevant for your project mention this fact instead of removing the section.
Some concept cannot be “factored” into a separate building block of the architecture (e.g. the topic “security”). This section of the template is the location where you can describe all decision for such a cross cutting topic in one central place. Nevertheless, you have to make sure that all your building blocks conform to such decisions.
simple-chat is completely written in English and will not support Internationalization. However the user can chat in every language he likes.
UnitTests are done via JUnit 4 and Mockito and are stored in the modules in src/test/java. A UnitTest is in the same package as the Class he tests. For testing purpose it is OK to increase the visibility of a Class or Method to protected. A Test class is named after the Class it is testing and ends with Test.
To test the complete System there is the chat-acceptancetests module which uses Cucumber and Selenium to test the software like a User via the Web GUI. To be able to automate this tests Docker container are used which did not expose there ports and so did not colide with program’s running on the system. All BDD tests can be executed locally and will then run against localhost:8080. All BDD Tests file have the suffix .feature.
As build system Maven 3 is used and the source code is stored in github. To build and run the acceptance test locally just run
mvn clean verify
Ensure you have docker installed and listening on ${docker.host}.