Commit Graph

212 Commits

Author SHA1 Message Date
Andy Wilkinson
2cb1f3e647 Add packaging abstraction
Closes gh-815

Co-authored-by: Stephane Nicoll <snicoll@pivotal.io>
2019-02-08 09:50:34 +01:00
Andy Wilkinson
3f585337da Add Maven build support
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>
2019-02-08 09:50:34 +01:00
Andy Wilkinson
2bd64ed6ed Add Gradle build support
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
2019-02-08 09:50:34 +01:00
Andy Wilkinson
1dbed8cdf8 Add build abstraction
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>
2019-02-08 09:50:34 +01:00
Stephane Nicoll
b5ba883b02 Add Groovy language support
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
2019-02-08 09:50:34 +01:00
Stephane Nicoll
bdfa852675 Add Kotlin language support
This commit provides a Kotlin language implementation with a writer that
can generate a `.kt` source file based on a configurable model.

See gh-813
2019-02-08 09:50:34 +01:00
Andy Wilkinson
d0d4809ee9 Add Java language support
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>
2019-02-08 09:50:34 +01:00
Andy Wilkinson
77bb7eb3ac Add language abstraction
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>
2019-02-08 09:50:34 +01:00
Stephane Nicoll
b6e675de40 Add writer with indent support
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>
2019-02-08 09:50:34 +01:00
Stephane Nicoll
3fa03b8438 Move metadata to a dedicated module
This commit moves the `metadata` package to a dedicated
`initializr-metadata` module so that it can be shared.

Closes gh-804
2019-02-08 09:50:34 +01:00
Stephane Nicoll
6ccfb69692 Promote version infrastructure to dedicated package
This commit moves `Version` and related support classes to a dedicated
package

Closes gh-811
2019-02-08 09:50:34 +01:00
Madhura Bhave
e281480426 Switch project structure to use the new generator
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>
2019-02-08 09:50:26 +01:00
Stephane Nicoll
0628829cd3 Upgrade to JUnit Jupiter 5.4.0-RC2 2019-02-07 10:53:31 +01:00
Madhura Bhave
1bd84fe0ce Use metadata used for project generation for stats
Closes gh-810
2019-02-06 11:39:05 -08:00
Stephane Nicoll
8a0d413a06 Clean build assertions 2019-02-05 16:36:56 +01:00
Stephane Nicoll
73415ea21d Remove Jackson dependency on Version infrastructure
Closes gh-808
2019-02-05 10:41:16 +01:00
Stephane Nicoll
ce2d210d75 Move CommandLineHelpGenerator to initializr-web
Closes gh-807
2019-02-04 17:21:12 +01:00
Stephane Nicoll
f5395c07e1 Split metadata specific exception from InitializrException 2019-01-31 11:14:18 +01:00
Stephane Nicoll
fab532ebd4 Upgrade to JUnit 5.4.0-RC1 2019-01-31 11:06:54 +01:00
Madhura Bhave
79dc5956d5 Fix POMS for the updated release process 2019-01-30 08:24:06 -08:00
Stephane Nicoll
662c0b1e15 Remove reference to InitializrMetadataTestBuilder from metadata tests
This will ease the migration of the metadata to its own module
2019-01-30 14:33:41 +01:00
Rob Tompkins
96540f5bcd Upgrade generator to Maven 3.6.0
Closes gh-794
2019-01-29 15:30:48 +01:00
Stephane Nicoll
2b6ab498cf Polish migration to JUnit5
See gh-802
2019-01-28 14:38:54 +01:00
Madhura Bhave
8ec763e0ba Polish 2019-01-24 10:08:30 -08:00
Madhura Bhave
2816c21631 Migrate generator tests to JUnit5
Closes gh-802
2019-01-24 10:04:00 -08:00
Stephane Nicoll
4810d8aac2 Harmonize .gitignore generation 2019-01-22 20:54:19 +01:00
Stephane Nicoll
1fcf48e2fa Skip providedRuntime configuration block with war projects
Closes gh-796
2019-01-10 14:57:10 +01:00
Stephane Nicoll
e34720a35a Remove hard-coded reference to Eclipse plugin
Closes gh-795
2019-01-09 15:36:00 +01:00
Madhura Bhave
29a8e9b32c Remove redundant assertion 2019-01-09 15:21:59 +01:00
Madhura Bhave
52599b0600 Move Kotlin task customization to the bottom 2019-01-09 15:18:23 +01:00
Madhura Bhave
ed5d5398ad Remove unnecessary whitespace 2019-01-09 15:18:23 +01:00
Madhura Bhave
19301ed6ff Use single quotes where string interpolation not required 2019-01-09 14:57:27 +01:00
Madhura Bhave
395567ca1d Remove surrounding brackets for gradle dependencies
Closes gh-797
2019-01-09 14:57:18 +01:00
Stephane Nicoll
b17da2489c Polish 2019-01-08 09:32:41 +01:00
Madhura Bhave
3ceb608f87 Add a gradle assertion for build properties
See gh-781
2019-01-07 13:14:55 -08:00
Madhura Bhave
3982ceceeb Group build properties under ext
Closes gh-781
2019-01-07 12:43:51 -08:00
Stephane Nicoll
e23132747b Surround sourceCompatibility with single quotes
Closes gh-791
2019-01-05 10:13:06 +01:00
wonwoo
a515a49a68 Update examples to mention Java 11
Closes gh-787
2019-01-01 11:00:57 +01:00
Stephane Nicoll
af39236360 Harmonize Groovy code format
Closes gh-785
2018-12-13 13:42:11 +01:00
Stephane Nicoll
3868019f87 Simply repository definition with Maven
Closes gh-782
2018-12-12 11:25:13 +01:00
Stephane Nicoll
8e6b5e9cf5 Remove default packaging from generated pom
Closes gh-780
2018-12-11 10:25:05 +01:00
Stephane Nicoll
c3079c5609 Polish 2018-12-11 09:54:24 +01:00
Stephane Nicoll
87b6a320fc Polish Kotlin code format 2018-12-10 15:09:45 +01:00
Stephane Nicoll
fc7cc42d62 Polish code format 2018-12-10 15:02:22 +01:00
Stephane Nicoll
742db270d8 Stop registering java.version as a VersionProperty 2018-12-06 14:08:45 +01:00
Stephane Nicoll
bba9eb7a33 Polish generated pom
This commit removes two useless properties that are already contributed
by `spring-boot-starter-parent`.
2018-12-06 13:49:09 +01:00
Stephane Nicoll
4a75ad6b21 Polish Maven pom structure 2018-12-05 16:36:40 +01:00
Stephane Nicoll
185e18cd5e Prevent project prior to Spring Boot 1.5 to be generated
See gh-763
2018-11-29 10:35:06 +01:00
Stephane Nicoll
f5d440506e Simplify project generation version checks
This commit simplifies project generation by only checking for supported
Spring Boot version (i.e. 1.5 and later) and therefore removing any
logic that is specified to a non supported version.

Concretely, initializr is no longer able to generate a project for a
Spring Boot version prior to 1.5

Closes gh-763
2018-11-29 10:16:50 +01:00
Stephane Nicoll
dbd865a526 Adapt test suite to more recent Spring Boot versions
See gh-763
2018-11-29 10:16:50 +01:00