This commit provides a Maven build system implementation with a writer
that can generate `pom.xml` files based on a configurable model.
Closes gh-814
Co-authored-by: Stephane Nicoll <snicoll@pivotal.io>
This commit provides a Gradle build system implementation with a writer
that can generate `build.gradle` and `settings.gradle` files based on a
configurable model.
See gh-814
This commit adds a build abstraction with a base model that concrete
build systems can reuse.
See gh-814
Co-authored-by: Stephane Nicoll <snicoll@pivotal.io>
This commit provides a Groovy language implementation with a writer that
can generate a `.groovy` source file based on a configurable model.
Closes gh-813
This commit provides a Java language implementation with a writer that
can generate a `.java` source file based on a configurable model.
See gh-813
Co-authored-by: Stephane Nicoll <snicoll@pivotal.io>
This commit adds a `Language` on the JVM abstraction with well known
concepts such as `Annotation`, `Parameter`, `CompilationUnit` and
`TypeDeclaration` that concrete language implementations can reuse.
See gh-813
Co-authored-by: Stephane Nicoll <snicoll@pivotal.io>
This commit adds an `IndentingWriter` with a factory that supports
different indenting option according to a content identifier (e.g. a
language).
Closes gh-812
Co-authored-by: Andy Wilkinson <awilkinson@pivotal.io>
This commit removes the former `ProjectGenerator` api based on mustache
template in favour of a new DSL infrastructure to be detailed in further
commits.
Event handling is now web-specific with a `ProjectRequest` and a
`WebProjectRequest` that gathers the base input from the request and
some additional web-specific metadata, respectively. As a consequence
the `initializr-actuator` module has now a dependency on the
`initializr-web` module.
See gh-340
Co-authored-by: Stephane Nicoll <snicoll@pivotal.io>