Commit Graph

1313 Commits

Author SHA1 Message Date
Stephane Nicoll
478c0c41c6 Relocate Agent to web module 2019-02-08 10:56:41 +01:00
Stephane Nicoll
b6657211f6 Review TemplateRenderer abstraction
Closes gh-818
2019-02-08 10:53:49 +01:00
Stephane Nicoll
6e9f542560 Polish 2019-02-08 10:24:59 +01:00
Stephane Nicoll
5e04746746 Add Spring-based project contributors
This commit adds an optional module that gathers the opinions that are
used to generate a Spring Boot project.

Closes gh-340

Co-authored-by: Madhura Bhave <mbhave@pivotal.io>
Co-authored-by: Andy Wilkinson <awilkinson@pivotal.io>
2019-02-08 09:50:35 +01:00
Stephane Nicoll
0d5efd24ba Add support for customizable project generation
This commit adds a project generation infrastructure based on the
abstraction defined thus far. Each project is described by a
`ProjectDescription` that provides the basic information about the
project such as language, build system, packaging, platform version
and more.

Each project runs in a dedicated `ProjectApplicationContext` where
contributors and customizers are elected to generate the project.

Customizers are meant to update the model based on the
`ProjectDescription` and other factors while contributors consume
models to generate project assets (build files, source files, etc).

Because project generation runs in a dedicated context, components can
be flagged with special conditions that enable them only when necessary.
Several conditions are provided in this commit to enable a component
based on the language, build system, packaging, platform version or
requested dependency.

See gh-340

Co-authored-by: Andy Wilkinson <awilkinson@pivotal.io>
Co-authored-by: Madhura Bhave <mbhave@pivotal.io>
2019-02-08 09:50:34 +01:00
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
8c02e4093c Polish
See gh-809
2019-02-06 09:39:48 +01:00
Madhura Bhave
857923b549 Remove ProjectGenerationMetricsListener
Fixes gh-809
2019-02-05 13:17:22 -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
Stephane Nicoll
ea2ea08523 Initiate 0.8.0.BUILD-SNAPSHOT version 2019-01-31 10:42:34 +01:00
Madhura Bhave
cd550d597e Fix generate release notes script
Fixes gh-805
2019-01-30 11:27:39 -08:00
Spring Buildmaster
f82ebb050e Next development version (v0.7.1.BUILD-SNAPSHOT) 2019-01-30 16:34:48 +00: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
Stephane Nicoll
3856aef259 Add missing utility required by staging script 2019-01-30 13:56:04 +01:00
Stephane Nicoll
3878597626 Add git to CI image 2019-01-30 13:51:03 +01:00
Stephane Nicoll
6650dbad11 Improve stat document structure
Closers gh-787
2019-01-29 16:22:49 +01:00
Stephane Nicoll
1f168651db Merge pull request #794 from chtompki
* pr/794:
  Upgrade generator to Maven 3.6.0
2019-01-29 15:31:14 +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
b2e10ab2f5 Update maven wrapper to Apache Maven 3.6.0 2019-01-29 15:29:06 +01:00
Stephane Nicoll
b60cbabb72 Polish 2019-01-29 15:25:34 +01:00
Stephane Nicoll
0f53acc6bd Fix links
See gh-801
2019-01-29 15:17:56 +01:00
Stephane Nicoll
0a57353fd9 Harmonize doc to standard doc resources
Closes gh-801
2019-01-29 15:17:55 +01:00
Stephane Nicoll
d2033da88a Add flatten maven plugin support
This commit makes sure that poms are cleaned before publishing
2019-01-29 15:08:41 +01:00
Stephane Nicoll
6a5d35f5ab Fix broken link
Closes gh-803
2019-01-29 12:42:40 +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
ae937ca4bc Migrate tests to JUnit5
See gh-802
2019-01-24 10:04:00 -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
d0a851e94d Upgrade to Spring Boot 2.1.2.RELEASE 2019-01-12 08:09:43 -05: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