Skip to content
/ e-adr Public
forked from adr/e-adr

Architectural Decisions Records embedded in Java code

License

Notifications You must be signed in to change notification settings

schubmat/e-adr

 
 

Repository files navigation

Embedded Architectural Decision Records

Build Status Maven Central Javadocs License

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:

Examples

Example for a linked ADR

@ADR(1)
public class MADRAnnotationDemoClass {
    public int sampleBusinessLogic(String input) {
        return 42;
    }
}

Example for complete embedding

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

Development information

gradlew assemble requires the upload to maven central configured properly. Thus, please use gradlew jar to generate the jar.

About

Architectural Decisions Records embedded in Java code

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%