Commit Graph
100 Commits
Author SHA1 Message Date
Stephane Nicoll 595050258c Move source file extension to Language abstraction
Closes gh-995
2019-08-31 09:07:06 +02:00
Stephane Nicoll cff60c397d Improve custom project request arrangement
This commit improves the use case of configuring a custom ProjectRequest
by enforcing consistently a particular type using a generic.

As a result, `ProjectGenerationInvoker` is no longer exposed as a bean
as it is the responsibility of the custom `ProjectGenerationController`
to provide one that matches the requested `ProjectRequest` type.

See gh-990
2019-08-29 10:52:02 +02:00
Stephane Nicoll f74370eb63 Allow binding of custom ProjectRequest
This commit allows a custom instance to easily bind incoming request
attributes to a custom ProjectRequest instance and map it to a custom
ProjectDescription as well.

Closes gh-990
2019-08-27 09:48:47 +02:00
Stephane Nicoll d9a20ed68c Split controller endpoints
This commit splits MainController to a number of controllers with
dedicated responsibilities. This is a first step to make these features
more modular and potentially opt-in in the future.

Closes gh-994
2019-08-27 08:30:15 +02:00
Stephane Nicoll 282c92f76d Polish 2019-08-25 17:16:18 +02:00
Stephane Nicoll 0b37199b3e Polish 2019-08-25 04:41:44 +02:00
Stephane Nicoll c36ae847fb Harmonize ProjectDescription name 2019-08-25 03:17:25 +02:00
Stephane Nicoll 286e38888c Migrate ProjectDescription to an interface
This commit migrates ProjectDescription to an interface with read-only
accessors and create a MutableProjectDescription implementation that can
be used for both purposes.

As a result, the type separation between ResolvedProjectDescription and
ProjectDescription is no longer necessary.

Closes gh-993
2019-08-25 03:03:57 +02:00
Stephane Nicoll 67de21f629 Stop using debug flag for Windows build 2019-08-25 02:34:24 +02:00
Stephane Nicoll 1a0ec74f8a Polish 2019-08-25 02:32:50 +02:00
Stephane Nicoll 91656ba0f8 Polish 2019-08-23 15:06:36 +02:00
Stephane Nicoll ccd2ec8c30 Merge pull request #967 from LeoRamos01
* pr/967:
  Polish "Add support for Maven resources"
  Add support for Maven resources

Closes gh-967
2019-08-23 15:06:00 +02:00
Stephane Nicoll b711ac73c9 Polish "Add support for Maven resources"
See gh-967
2019-08-23 15:03:05 +02:00
Stephane Nicoll c2886679d6 Fix package tangle
Closes gh-992
2019-08-23 11:36:22 +02:00
Stephane Nicoll ddd609c639 Move assert to AssertJ
This commit moves project-based assertions to regular AssertJ Assert
classes. `ProjectStructure` is now an assert provider so that it can
be used with the standard `assertThat` method.

Specialized assertions are provided for the supported build systems as
well as text-based content.

Closes gh-764
2019-08-22 15:24:28 +02:00
Stephane Nicoll 1082ac7bf7 Extract project generation test utility to dedicated module
This commit extracts various test utilities to a dedicated
initializr-generator-test module for easier consumption. The previous
test-jar are no longer published and a dependency to this new module
should be equivalent.

This commit also cleans various resources that were located in the wrong
place. In particular initializr-generator does not know anything about
metadata anymore.

Closes gh-988
2019-08-21 16:10:06 +02:00
Stephane Nicoll dbd1198996 Rename SourceCodeStructure to SourceStructure
This commit generalizes the main and test structure so that it can be
used for more use cases.
2019-08-21 16:09:17 +02:00
Stephane Nicoll 53a0484289 Add a way to easily create a Spring Boot starter from id 2019-08-21 11:08:47 +02:00
Stephane Nicoll 79170178ff Add missing artifact in bom
See gh-981
2019-08-21 10:59:52 +02:00
Stephane Nicoll 19ed484dc3 Add SourceCodeStructure abstraction
Closes gh-987
2019-08-19 19:09:26 +02:00
Stephane Nicoll 3d11b9daff Upgrade to Gradle 5.6
Closes gh-986
2019-08-19 08:29:53 +02:00
Stephane Nicoll c3c20b84f9 Polish 2019-08-18 18:25:45 +02:00
Stephane Nicoll d2a5897550 Add JUnit5 checkstyle rule 2019-08-18 14:42:53 +02:00
Stephane Nicoll 96cb299f5b Remove dependency on Spring Boot auto-configure module 2019-08-18 14:39:29 +02:00
Stephane Nicoll a4ec276f57 Upgrade to JUnit Jupiter 5.5.1 2019-08-18 14:38:12 +02:00
Stephane Nicoll 976f290144 Harmonize logging test configuration 2019-08-18 14:35:51 +02:00
Stephane Nicoll cd59699644 Polish 2019-08-18 14:11:31 +02:00
Stephane Nicoll ece903e754 Add nohttp checks 2019-08-18 14:07:49 +02:00
Stephane Nicoll dee5467bd1 http -> https 2019-08-18 14:07:02 +02:00
Stephane Nicoll f083e6e5cd Make sure MavenBuildWriter uses https link wherever possible 2019-08-18 13:35:47 +02:00
Stephane Nicoll 11914b0630 Move formatting and checkstyle to root pom 2019-08-18 08:55:40 +02:00
Stephane Nicoll 82e637e861 Polish 2019-08-18 08:46:20 +02:00
Stephane Nicoll 14efb35afe Add note about BOM 2019-08-18 08:44:29 +02:00
Stephane Nicoll 1a67198ccb Merge pull request #984 from htztomic
* pr/984:
  Add empty line when content is wrapped

Closes gh-984
2019-08-17 17:28:28 +02:00
Stephane Nicoll ff6e26463b Add Bill Of Materials
Closes gh-981
2019-08-15 07:53:46 +02:00
Stephane Nicoll 4976ba57de Fix javadoc configuration
This commit makes sure that the `initializr-metadata` module is included
and doc-related examples are not.

Closes gh-982
2019-08-14 15:25:37 +02:00
Stephane Nicoll 9520100703 Add missing package-info.java files
Closes gh-886
2019-08-14 15:19:06 +02:00
Stephane Nicoll 9c30905003 Simplify KotlinVersionResolver arrangement
This commit makes sure KotlinVersionResolver works with the actual
metadata instance used by the project to generate rather than
potentially using a different instance via the provider.

Rather than requiring such a bean to be present, the configuration
fallbacks to the metadata implementation if none is provided.
2019-08-14 14:45:24 +02:00
Stephane Nicoll e343e3c0fc Harmonize how Spring Boot plugin is configured with Gradle
Closes gh-980
2019-08-14 14:37:56 +02:00
Stephane Nicoll c1b1b36f25 Add a strategy to resolve the dependency management plugin version
Closes gh-977
2019-08-14 14:37:48 +02:00
Stephane Nicoll 1672c69ab9 Polish 2019-08-14 10:37:01 +02:00
Stephane Nicoll 55f0a4ad24 Merge pull request #978 from htztomic
* pr/978:
  Polish "Add support for removing build plugins"
  Add support for removing build plugins

Closes gh-978
2019-08-13 20:59:29 +02:00
Stephane Nicoll a3826cfaed Polish "Add support for removing build plugins"
See gh-978
2019-08-13 20:30:07 +02:00
Stephane Nicoll f33a661074 Be more defensive when extracting filename from URI
Closes gh-827
2019-08-12 13:52:34 +02:00
Stephane Nicoll 719c368a66 Add compliance tests for next-generation builds 2019-08-09 16:26:15 +02:00
Stephane Nicoll 318ffccfe7 Stop excluding JUnit 4 as of Spring Boot 2.2.0.M5
This commit updates the test starter contributor to only exclude the
vintage engine as excluding junit is no longer necessary.

Closes gh-930
2019-08-09 15:54:02 +02:00
Stephane Nicoll 6422432196 Improve exception if mandatory compatibility range is no set 2019-08-09 14:12:58 +02:00
Stephane Nicoll 7ffcd17a8c Merge pull request #968 from htztomic
* pr/968:
  Polish "Rename versionRange attribute to compatibilityRange"
  Rename versionRange attribute to compatibilityRange

Closes gh-968
2019-08-09 14:05:44 +02:00
Stephane Nicoll 536e1830e7 Polish "Rename versionRange attribute to compatibilityRange"
See gh-968
2019-08-09 11:34:02 +02:00
Stephane Nicoll aaf44d1ec8 Polish documentation 2019-08-07 18:32:21 +02:00
Stephane Nicoll 98bdd29356 Guard compilation unit from null attributes
Closes gh-975
2019-08-07 15:29:57 +02:00
Stephane Nicoll 9964bb222c Upgrade to Spring Boot 2.1.7 2019-08-06 14:23:00 +02:00
Stephane Nicoll 5672806380 Handle dependency without scope
This commit updates BuildSystem writer implementations to handle a
dependency without scope rather than ignoring it. If a dependency has
no scope it is managed as it had DependencyScope.COMPILE.

Closes gh-972
2019-08-05 16:17:42 +02:00
Stephane Nicoll 65562e1e92 Polish 2019-08-05 14:16:42 +02:00
Stephane Nicoll 844c7ca004 Make DefaultProjectAssertGenerator more flexible
This commits adds a public constructor to take a ProjectDirectoryFactory
implementation to make it more obvious it is a required component. In
the absence of a configured factory, one is retrieved from the context
as before.
2019-08-05 13:39:24 +02:00
Stephane Nicoll 316751a57c Consistently create project directory
Closes gh-971
2019-08-05 13:39:24 +02:00
Stephane Nicoll f5427ffff4 Merge pull request #966 from htztomic
* pr/966:
  Polish "Make sure project descriptions line-wrap at a decent length"
  Make sure project descriptions line-wrap at a decent length

Closes gh-966
2019-07-31 18:18:29 +02:00
Stephane Nicoll e67f2bb0ac Polish "Make sure project descriptions line-wrap at a decent length"
See gh-966
2019-07-31 18:14:26 +02:00
Stephane Nicoll 74e0bcc3a5 Merge pull request #881 from mattyb678
* pr/881:
  Polish "Adding field declaration for code generation"
  Adding field declaration for code generation

Closes gh-881
2019-07-25 16:52:19 +02:00
Stephane Nicoll c7093c6b51 Polish "Adding field declaration for code generation"
See gh-881
2019-07-25 16:34:57 +02:00
Stephane Nicoll d8a5be76f5 Merge pull request #964 from tgeens
* pr/964:
  Polish "Clean root resource path if necessary"
  Clean root resource path if necessary

Closes gh-964
2019-07-25 13:47:02 +02:00
Stephane Nicoll 7800d50551 Polish "Clean root resource path if necessary"
See gh-964
2019-07-25 13:46:54 +02:00
Stephane Nicoll 7a1b986f2a Merge pull request #960 from htztomic
* pr/960:
  Polish "Do not add snapshot repo unless absolutely necessary"
  Do not add snapshot repo unless absolutely necessary

Closes gh-960
2019-07-25 12:31:27 +02:00
Stephane Nicoll a92c791c32 Polish "Do not add snapshot repo unless absolutely necessary"
See gh-960
2019-07-25 12:20:15 +02:00
Stephane Nicoll e0dfac1a77 Merge pull request #880 from roussi
* pr/880:
  Polish "Write Gradle plugin repositories section only if necessary"
  Write Gradle plugin repositories section only if necessary

Closes gh-880
2019-07-25 11:39:28 +02:00
Stephane Nicoll 7b18b15a5a Polish "Write Gradle plugin repositories section only if necessary"
See gh-880
2019-07-25 11:39:10 +02:00
Stephane Nicoll 18b537b65f Infer default link name when appropriate
This commit improves the HELP.md customizer for links to add a link even
if it does not have a description. Links are defined in three dedicated
areas so it is possible to infer a sensible name if only one link of a
certain type is present.

Closes gh-962
2019-07-23 17:45:02 +02:00
Stephane Nicoll a55d262152 Document supported facets 2019-07-17 09:10:44 +02:00
Stephane Nicoll fd75d36e20 Polish 2019-07-16 14:52:58 +02:00
Stephane Nicoll 449b22403a Upgrade to spring-javaformat 0.0.15
Closes gh-949
2019-07-10 14:57:35 +02:00
Stephane Nicoll 6af13f6dde Merge pull request #948 from rodrigolgraciano
* pr/948:
  Fix error message when a version could not be parsed

Closes gh-948
2019-07-10 08:45:28 +02:00
Stephane Nicoll 1c7a73c29f Add missing test for JUnit 4 exclusion
See gh-905
2019-06-19 14:50:32 +02:00
Stephane Nicoll 6c79192e75 Polish 2019-06-19 14:47:37 +02:00
Stephane Nicoll dab8bd644a Upgrade to Spring Boot 2.1.6.RELEASE 2019-06-19 14:01:57 +02:00
Stephane Nicoll 918fe40dd9 Polish 2019-06-17 15:37:06 +02:00
Stephane Nicoll 7f20525112 Merge pull request #928 from lndobryden
* pr/928:
  Polish "Fix start.spring.io example configuration link"
  Fix start.spring.io example configuration link

Closes gh-928
2019-06-14 18:08:16 +02:00
Stephane Nicoll 00345e628d Polish "Fix start.spring.io example configuration link"
See gh-928
2019-06-14 18:07:56 +02:00
Stephane Nicoll 2f50cf1c8f Format source code
Closes gh-923
2019-06-12 14:46:53 +02:00
Stephane Nicoll 4132306a53 Upgrade to spring-javaformat 0.0.12
See gh-923
2019-06-12 14:46:40 +02:00
Stephane Nicoll 593b9ec878 Properly handle spring boot version metadata failure
See gh-145
2019-06-07 16:40:15 -04:00
Stephane Nicoll a79a9ae101 Upgrade to Gradle 4.10.3 for Spring Boot 2.0.x projects 2019-06-02 09:21:59 +02:00
Stephane Nicoll fdd850ba78 Merge pull request #914 from bclozel
* pr/914:
  Prevent caching issues with browsers

Closes gh-914
2019-06-02 09:10:32 +02:00
Stephane Nicoll ce150380c2 Polish method name 2019-05-31 12:13:59 +02:00
Stephane Nicoll 209f092168 Make hasText public to validate corner cases 2019-05-31 11:19:37 +02:00
Stephane Nicoll e063405b92 Allow to initialize a dependency builder from an existing dependency 2019-05-31 11:19:37 +02:00
Stephane Nicoll 31b60a6955 Model custom configuration for a Gradle dependency
Closes gh-850
2019-05-31 11:19:30 +02:00
Stephane Nicoll d32b2f6a20 Model that a Maven dependency is optional
Closes gh-913
2019-05-31 09:35:43 +02:00
Stephane Nicoll e6f287b298 Fix compatiblity with Microsoft Windows
Closes gh-879
2019-05-29 16:10:54 +02:00
Stephane Nicoll 62d0a94364 Migrate ProjectAssert to java.nio.file.Path 2019-05-28 15:29:28 +02:00
Stephane Nicoll b8cac0407b Add dependency builder
This commit adds a builder for Dependency to allow it to be further
tuned without having to add an extra constructor.
2019-05-22 15:44:30 +02:00
Stephane Nicoll 7a30f771f2 Provide idiomatic test setup when JUnit Jupiter is available
This commit provides a better test infrastructure when JUnit 5 is
available:

* The default test class uses JUnit Jupiter API
* The vintage engine that the Spring Boot starter provides is excluded
so that only the Junit Jupiter API is available on the classpath

Closes gh-905
2019-05-22 13:49:50 +02:00
Stephane Nicoll a2950c9a56 Add support for dependency exclusions
Closes gh-906
2019-05-22 11:59:15 +02:00
Stephane Nicoll b0597aaca1 Add modifiers support to TypeDeclaration
Closes gh-908
2019-05-22 10:10:30 +02:00
Stephane Nicoll c298a6d021 Polish 2019-05-21 13:45:58 +02:00
Stephane Nicoll 9ea41f151d Configure JUnit platform with Spring Boot 2.2+
Closes gh-904
2019-05-21 13:31:00 +02:00
Stephane Nicoll 75228ba4a3 Add parentheses for method invocations with no argument
Closes gh-907
2019-05-21 11:39:04 +02:00
Stephane Nicoll 7900a09ce6 Fix doc sample to use HTTPS explicitly 2019-05-20 08:52:08 +02:00
Stephane Nicoll 372e823d21 Fix version references in Gradle KTS build
Closes gh-901
2019-05-17 18:45:40 +02:00
Stephane NicollandAndy Wilkinson c7c16872c4 Polish "Add Gradle Kotlin DSL support"
In particular, this commit replaces the GradleKts dedicated build system
in favor of a dedicated build system dialect.

Closes gh-851

Co-authored-by: Andy Wilkinson <awilkinson@pivotal.io>
2019-05-15 16:54:50 +02:00
Stephane Nicoll 96f2b5fbab Upgrade maven plugins 2019-05-15 16:53:17 +02:00