You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Because Achilles is using heavily annotation processor to generate source code at compile time, sometimes external contributors find it very hard to handle and understand the code.
The on-boarding guide will make their life easier by explaining the main design choices of Achilles that are not explicit:
the multi-module Maven project
why the need to have a separated achilles-model module
the configuration of annotation processors on each module
Tell, don't ask design philosophy
the design of the meta data classes
a walkthrough on
compile time entities & annotations parsing (AnnotationTree)
compile time generation of source code
the codec system
the type-safe function supports in Achilles
the code design for the DSL source code generation
inner classes & variable sharing for DSL
behavior multi-inheritance through interface default methods
generation of combinatory WHERE clause
the tricks to support ECJ compiler
testing infrastructure
mvn compile on achilles-core to copy .java source file to target directory
usage of compile-testing library and special annotation to trigger annotation processor
Cassandra version-aware feature toggle using rich enums
Doc generation with pandoc on Linux & Mac
TestSchemaGenerator to be put in the latest integration test module
The text was updated successfully, but these errors were encountered:
Because Achilles is using heavily annotation processor to generate source code at compile time, sometimes external contributors find it very hard to handle and understand the code.
The on-boarding guide will make their life easier by explaining the main design choices of Achilles that are not explicit:
achilles-model
moduleTell, don't ask
design philosophyAnnotationTree
)WHERE
clausemvn compile
on achilles-core to copy .java source file totarget
directorypandoc
on Linux & MacTestSchemaGenerator
to be put in the latest integration test moduleThe text was updated successfully, but these errors were encountered: