We believe that architectural decisions are important for an success of a project. Maintaining external documentation is cumbersome and it may get out of sync. Using embedded architectural decision records allows to embed architectural decisions in Java code.
Currently, following architectural decision records are supported:
- Y-Statements - Sustainable Architectural Decision Records
- Markdown Architectural Decision Records ("MADR") - lean architecture decision records using markdown.
@ADR(1)
public class MADRAnnotationDemoClass {
public int sampleBusinessLogic(String input) {
return 42;
}
}
@MADR(value = 1,
title = "Implement entire business logic layer as POJO",
contextAndProblem = "Need to select a single consistent ComponentImplementationParadigm' for entire business logic layer",
alternatives = {"POJO", "JEE EJB", "Spring Bean"},
chosenAlternative = "POJO",
justification = "Because it is a company-wide policy, see http://www.iaas.uni-stuttgart.de/institut/ehemalige/zimmermann/indexE.php",
relatedDecisions = {2, 3})
public class MADRAnnotationDemoClass {
public int sampleBusinessLogic(String input) {
return 42;
}
}
See https://adr.github.io for more information on ADRs.
gradlew assemble
requires the upload to maven central configured properly.
Thus, please use gradlew jar
to generate the jar.