Commit Graph

1786 Commits

Author SHA1 Message Date
Andy Wilkinson 14ba7442d9 Ensure that spring-boot-parent is imported into generated pom
Fixes gh-21518
2020-05-20 16:55:41 +01:00
Andy Wilkinson ee758fa670 Use HTTPS for license links
This commit updates the MavenPublishingConventions to use HTTPS to
link to the Apache license. The configuration of NoHTTP has also
been reworked so that it will correctly find usch uses of http://
URLs.

Closes gh-21459
2020-05-15 16:33:11 +01:00
Brian Clozel 42d07a7acd Fix published Maven POMs
Prior to this commit, the published Maven POMs would not pass the Maven
Central mandatory checks.

This commit adds the missing project name and description metadata for
most artifacts. The Spring Boot Gradle plugin artifact was also missing
this information and this is now added in the plugin metadata itself.
This is also updating the project page URL which is now hosted directly
on spring.io.

Fixes gh-21457
2020-05-14 23:59:11 +02:00
Phillip Webb 038ae93406 Update copyright year of changed files 2020-05-13 16:48:51 -07:00
Phillip Webb 12381467da Polish 2020-05-13 16:48:51 -07:00
Andy Wilkinson a03426af57 Configure the Asciidoctor revnumber in a central location
See gh-20934
2020-05-13 08:16:59 +01:00
Madhura Bhave 376098d080 Set asciidoctor revnumber to null
Closes gh-20934
2020-05-12 14:58:38 -07:00
Scott Frederick 90ce472252 Support local socket path in DOCKER_HOST
Prior to this commit, if a DOCKER_HOST environment variable was present
when attempting to communicate with a Docker daemon, it was assumed
that the value of that variable was an address that could be used to
create an HTTP connection to a remote daemon. In some cases, the value
of the variable is the path to a local socket file, which would cause
the HTTP connection to fail.

This commit adds additional validation of the value of the DOCKER_HOST
environment variable to determine whether it is a remote address or
a local socket file and create the appropriate connection type.

Fixes gh-21173
2020-05-12 16:11:27 -05:00
Scott Frederick 28749e7fbb Update CNB buildpack Java version env variable
Prior to this commit, the build tool plugins set the environment
variable BP_JAVA_VERSION when invoking the CNB builder to set the
version of the JDK/JRE that the builder should use in the created
image.

With CNB API 0.3, the convention changed the name of this environment
variable to BP_JVM_VERSION. This commit updates the build tool
plugins to match the newer convention.

See gh-21273
2020-05-08 17:07:51 -05:00
Scott Frederick 35bc82a693 Use CNB creator all-in-one lifecycle
This commit modifies the buildpack platform invocation logic used by
the build plugins to invoke the single creator lifecycle introduced in
the CNB API 0.3, instead of invoking discrete lifecycle phases
separately. It also removes support for CNB API 0.2.

Fixes gh-21273
2020-05-08 17:03:47 -05:00
Johnny Lim 665a127448 Fix JarFileTests.getInputStreamWhenClosed()
See gh-21365
2020-05-08 16:06:42 +02:00
Andy Wilkinson 70c4baeef6 Merge branch '2.2.x'
Closes gh-21341
2020-05-06 17:34:48 +01:00
Andy Wilkinson 386d678d99 Use Gradle's CreateStartScripts task with 6.4 and later
Fixes gh-20759
2020-05-06 17:02:34 +01:00
Andy Wilkinson 693fa918e2 Tolerate deprecation warnings generated by Gradle 6.4
The warnings will be addressed by gh-20759. CreateBootStartScripts
must be excluded from the classes that are validated by the
ValidatePlugins task. It is invalid, but only for Gradle 6.4. gh-20759
will cause it to only be used with Gradle 6.3 and earlier.

See gh-21329
2020-05-06 15:33:11 +01:00
Stephane Nicoll 02aacf4f04 Upgrade to Gradle 6.4
Closes gh-21329
2020-05-06 15:03:50 +02:00
Andy Wilkinson 1bc41ec336 Stop developmentOnly from removing too much from executable jars and wars
Fixes gh-21288
2020-05-06 09:45:35 +01:00
Phillip Webb 5ae623c43a Polish 'Add Period converter support'
Polish period converter support, primarily by changing
`PeriodStyle` to parse and print periods that include
more than one unit.

See gh-21136
2020-05-06 00:21:50 -07:00
Grubhart dc4d71f91e Add Period converter support
Add converter support for `javax.time.Period` including:

	String -> Period
	Number -> Period
	Period -> String

Period to Number conversion is not supported since `Period` has no
ability to deduce the number of calendar days in the period.

See gh-21136
2020-05-05 22:31:49 -07:00
Phillip Webb 4a8492d428 Further optimize StringSequence.startsWith
See gh-21259
2020-05-05 18:37:10 -07:00
dreis2211 70ffc70993 Optimize StringSequence.startsWith
See gh-21259
2020-05-05 18:37:10 -07:00
Kyle Hoehns fd46002666 Fix typo for includeLayerTools
See gh-21310
2020-05-04 17:29:28 -07:00
Andy Wilkinson de1e3c6069 Include empty layers when listing and extracting
Fixes gh-21301
2020-05-04 15:50:55 +01:00
Scott Frederick 1c11e163c7 Fix Maven plugin command-line examples
Fixes gh-21078
2020-04-30 12:19:14 -05:00
Scott Frederick 0cb090766f Fix typos in mock tests data 2020-04-29 18:08:34 -05:00
Scott Frederick f3d717e97a Use paketo-buildpacks/builder as default builder
This commit changes the default builder image from
`cloudfoundry/cnb:bionic-platform-api-0.2` to
`gcr.io/paketo-buildpacks/builder:base-platform-api-0.3`. It also
uses a `paketo-buildpacks/builder` image instead of a
`cloudfoundry/cnb` image to test compatibility with lifecycle v2
and uses paketo naming instead of cloudfoundry when mocking builder
interactions.

Some adjustments to lifecycle phases were also made to align more
closely with the pack CLI.

Fixes gh-21066
2020-04-29 14:28:25 -05:00
Andy Wilkinson c7a5b72565 Improve compatibility by replacing use of seq with a native for-loop
Closes gh-21068
2020-04-29 19:30:35 +01:00
Andy Wilkinson 2d769e7679 Polish "Stop limiting layer customization to external modules"
See gh-21207
2020-04-29 14:22:43 +01:00
Paddy Drury 98644df64d Stop limiting layer customization to external modules
See gh-21207
2020-04-29 14:22:43 +01:00
Stephane Nicoll 6921fdacac Expand configuration class eager filtering to imports
Previously, only root auto-configuration classes could be excluded
eagerly via an AutoConfigurationImportFilter. Any configuration class
loaded as a result of processing a particular auto-configuration were
parsed and checked as usual.

This commit makes use of the `getExclusionFilter` callback to expand
this filter to all candidates that are considered. The annotation
processor has also be expanded to generate metadata for non-root
configuration classes.

Closes gh-12157
2020-04-29 10:45:28 +02:00
Phillip Webb ad1248e4ec Replace "folder" with "directory"
Consistently use the term "directory" instead of "folder"

Closes gh-21218
2020-04-28 19:20:24 -07:00
dreis2211 4b0a31acf8 Delete Toml class
See gh-21129
2020-04-28 11:01:00 +01:00
Phillip Webb 50e9674631 Backport "Attempt to prevent JarFiles from being left open"
Update `JarFile` so that `super.close()` is called early so that the
file is not left open. Since we re-implement `JarFile` methods to work
directly on the underlying `RandomAccessDataFile`, it should be safe
to close immediately.

Closes gh-21177
2020-04-27 19:03:52 -07:00
Andy Wilkinson fb33610027 Automatically create developmentOnly configuration
Previously, the developmentOnly configuration, typically used for
Devtools, had to be declared manually. The BootJar and BootWar tasks
then had a property, excludeDevtools, that could be used to control
whether or not Devtools would be excluded from the executable archive.

This commit updates the reaction to the Java plugin being applied to
automatically create the developmentOnly configuration. The classpaths
of bootJar and bootWar are then configured not to include the contents
of the developmentOnly configuration. As a result of this, the
excludeDevtools property is no longer needed and has been deprecated.
Its default has also been changed from true to false to make it easy
to opt in to Devtools, when configured as a development-only
dependency, being included in executable jars and wars by adding
developmentOnly to the classpath of the archive task.

Closes gh-16599
2020-04-27 13:38:14 +01:00
Phillip Webb 77b9dd900c Merge branch '2.2.x'
See gh-21127
2020-04-25 22:21:23 -07:00
Phillip Webb 7d53f7d27f Attempt to prevent JarFiles from being left open
Update `JarFile` to also call `super.close()` early for nested jars.

See gh-21126
2020-04-25 22:20:53 -07:00
Phillip Webb 4f47b7b46a Merge branch '2.2.x'
See gh-21127
2020-04-25 13:32:43 -07:00
Phillip Webb 7c6e912463 Attempt to prevent JarFiles from being left open
Update `JarFile` so that `super.close()` is called early so that the
file is not left open. Since we re-implement `JarFile` methods to work
directly on the underlying `RandomAccessDataFile`, it should be safe
to close immediately.

See gh-21126
2020-04-25 13:03:07 -07:00
Stephane Nicoll 961be0fea3 Merge branch '2.2.x'
Closes gh-21118
2020-04-25 09:15:49 +02:00
dreis2211 e3a9bacf3b Fix typo
See gh-21002
2020-04-25 09:14:01 +02:00
dreis2211 848127ae49 Avoid recompiling pattern in Handler#canonicalize
See gh-21103
2020-04-25 09:02:21 +02:00
dreis2211 5eb5bf0a2d Polish
See gh-21009
2020-04-25 08:54:47 +02:00
Stephane Nicoll 85e9f713b0 Update copyright year of changed files
See gh-21007
2020-04-25 08:50:51 +02:00
Johnny Lim 29717423a3 Remove this keyword on member method invocations
See gh-21007
2020-04-25 08:49:44 +02:00
Andy Wilkinson 076a384c9c Merge branch '2.2.x'
Closes gh-21112
2020-04-24 18:10:00 +01:00
Andy Wilkinson 29dc236bb2 Broaden deprecation warning check in Gradle Plugin's tests
Closes gh-21111
2020-04-24 17:45:42 +01:00
Scott Frederick 8f5ef951de Use current timestamp for index files with Gradle
This commit removes changes the timestamp used when writing the
classpath and layers index files in the Gradle plugin to be the
current timestamp unless `preserveFileTimestamps=true`. It also
polishes some duplication in the handling of entry attributes
when creating the fat archive and adds a test to verify that
the Gradle plugin uses the same fixed timestamp constant as
Gradle uses internally.

See gh-21005
2020-04-23 16:05:32 -05:00
Phillip Webb b3d33754a5 Remove outdated FIXMEs from tests
Closes gh-19782
2020-04-22 11:55:35 -07:00
Phillip Webb bf41da5322 Update copyright year of changed files 2020-04-21 18:12:27 -07:00
Phillip Webb ed7a5db174 Fail operations when JarFile is closed
Update `JarFile` to track when the instance has been closed and throw
an exception in the same way that `ZipFile` does.

Closes gh-21072
2020-04-21 18:12:03 -07:00
Phillip Webb cc33e23d31 Merge branch '2.2.x'
Closes gh-21074
2020-04-21 17:22:11 -07:00
Phillip Webb 6bf933205c Merge branch '2.1.x' into 2.2.x
Fixes gh-21073
2020-04-21 17:21:32 -07:00
Scott Frederick fa186aa15b Preserve timestamps on loader directories
Prior to this commit, when the Maven plugin copied
spring-boot-loader.jar to a repackaged archive the timestamps of class
files were preserved but the timestamps of directories were not
preserved. This resulted in the directories having a current timestamp.

This commit copies the directory timestamps from spring-boot-loader.jar
to the repackaged archive and adds tests to verify the proper
behavior.

See gh-20927
2020-04-21 18:58:34 -05:00
Phillip Webb c85918b8b3 Create new JarFile instance for URL connections
Update `JarURLConnection` to ensure that when connections are opened
a new copy of the JarFile is provided.

Prior to this commit, a single `JarFile` instance was shared which meant
that it could be accidental closed if accessed via
`JarURLConnection.getJarFile()`. If the underlying jar file is closed
then it's possible for a `NoClassDefFoundError` to be thrown if running
on JDK 11 with an active `SecurityManager`.

Closes gh-17796
2020-04-21 16:32:51 -07:00
Stephane Nicoll 692885f71e Merge branch '2.2.x'
Closes gh-21049
2020-04-21 16:00:41 +02:00
Stephane Nicoll 8cbd7f5cd0 Polish "Add support for initializing nested object when nothing bound"
This commit harmonizes the change made to @DefaultValue to the
annotation processor. If such annotation is added to a scalar value with
no value at all, no default value is produced.

Closes gh-18917
2020-04-21 15:59:34 +02:00
Scott Frederick 555132e096 Fix archive attributes in Gradle plugin
This commit ensures that file permissions are set on entries that the
Gradle plugin adds to an archive. It also reverts the constant date
and time used for added entries to a previous value to ensure a time
zone offset is not applied.

See gh-20927
2020-04-17 17:33:28 -05:00
Johnny Lim 5fad43ec40 Polish
See gh-20973
2020-04-16 13:46:53 +02:00
Stephane Nicoll 4648ecef6e Merge branch '2.2.x'
Closes gh-20969
2020-04-15 09:48:32 +02:00
Stephane Nicoll 1dd8dcc6c9 Polish "Polish JarFile to extra anonymous inner class"
See gh-20882
2020-04-15 09:39:00 +02:00
Konrado85 e0d1cf0e38 Polish JarFile to extra anonymous inner class
See gh-20882
2020-04-15 09:33:24 +02:00
Konrado85 9f4c39c985 Change PropertiesLauncher equals method to use URI
See gh-20872
2020-04-13 13:55:17 +02:00
dreis2211 4b9986d790 Remove unused fields in tests
See gh-20926
2020-04-13 13:46:43 +02:00
Cicio Flaviu 7f1655e5cb Add package-info to buildpack.platform.docker.ssl
See gh-20913
2020-04-10 08:57:23 -05:00
dreis2211 d4575bc122 Fix unused parameters
See gh-20911
2020-04-10 14:06:42 +02:00
Stephane Nicoll 1c70b6735a Remove plugin management for exec-maven-plugin
Closes gh-20883
2020-04-08 17:51:22 +02:00
dreis2211 ae15a3d162 Polish LayersIndex
See gh-20874
2020-04-08 17:29:07 +02:00
Madhura Bhave 62c09d607a Polish 2020-04-07 14:28:36 -07:00
Phillip Webb 3ca896e63f Polish 2020-04-07 12:10:49 -07:00
Phillip Webb 1640add8be Don't use Assert class from loader
Remove the use of `Assert` since it's unavailable that early.
2020-04-07 12:09:43 -07:00
Phillip Webb d9fb4dd477 Don't use monospacing in documentation headings
Closes gh-20875
2020-04-07 11:08:57 -07:00
Scott Frederick e17d4be484 Polish plugin documentation headings 2020-04-07 09:17:51 -05:00
Scott Frederick a64e26fc44 Polish plugin documentation headings 2020-04-07 08:53:37 -05:00
Phillip Webb 729fc9dd6d Ensure streams are always closed
Update `AbstractJarWriter` to ensure that streams are always closed,
even if entries are not written.
2020-04-06 23:48:37 -07:00
Phillip Webb 1abbfbbfcd Attempt to fix failing Windows test 2020-04-06 23:48:28 -07:00
Phillip Webb ffd499fdc7 Attempt to fix failing Windows test 2020-04-06 23:02:12 -07:00
Phillip Webb d3c06ee0cf Remove windows line endings when parsing index 2020-04-06 21:57:36 -07:00
Phillip Webb 4b1346f4bf Polish 2020-04-06 21:52:25 -07:00
Phillip Webb 5b374e833b Cleanup paths to fix tests running on Windows 2020-04-06 20:33:33 -07:00
Phillip Webb baa728c85e Cleanup paths to fix tests running on Windows 2020-04-06 20:17:16 -07:00
Phillip Webb b50e8eb3aa Fix package tangle in Gradle plugin
Relocate `VersionExtractor` to fix a package tangle.
2020-04-06 19:18:22 -07:00
Phillip Webb 6e7b473fef Polish asciidoc formatting and use sentence case 2020-04-06 19:18:22 -07:00
Phillip Webb 951a3e78f9 Test layer index can contain filenames with spaces
Add tests to ensure that the layer index can support filenames that
contain spaces.

Closes gh-20827
2020-04-06 19:18:22 -07:00
Phillip Webb 464c15e52c Ensure empty layers are written to the index file
Update the `LayersIndex` class to ensure that layers that do not contain
content are still written.

Closes gh-20858
2020-04-06 19:18:22 -07:00
Phillip Webb df58b9baa2 Use YAML compatible classpath.idx format
Update the `classpath.idx` format to align with `layers.idx` and allow
third-parties can parse it as YAML

Closes gh-20861
2020-04-06 19:18:22 -07:00
Phillip Webb 65672a1150 Use a more compact layers.idx format
Update the `layers.idx` format so that it is more compact and can be
parsed by third-parties as YAML.

Closes gh-20860
2020-04-06 19:18:22 -07:00
Scott Frederick 35ff711dfe Document builder configuration for HTTP proxy
This commit adds examples for configuring the default builder to use
an HTTP/HTTPS proxy when building OCI images using the Maven or Gradle
plugin.

Fixes gh-19984
2020-04-06 18:20:34 -05:00
Oleg Zhurakousky 9f75f30856 Change call to createClassLoader(URL) from 'super' to 'this'
ExecutableArchiveLauncher.createClassLoader(Iterator) calls
createClassLoader(URL) method with 'super'. This means overriding
createClassLoader(URL) is not possible without also overriding
createClassLoader(Iterator). The switch to 'this' enables that.

See gh-20851
2020-04-06 10:40:37 -07:00
Scott Frederick bb568c5bff Consolidate Maven plugin documentation in plugin reference
This commit moves Maven plugin content from several sections in the
main Spring Boot reference documentation to the plugin-specific
documentation.

Fixes gh-19165
2020-04-03 16:41:12 -05:00
Scott Frederick c119dd2450 Rename plugin PDF reference doc files
This commit renames the PDF documentation files generated for the
build plugins when the distribution archive is created.

See gh-20829
2020-04-03 15:50:23 -05:00
Madhura Bhave f40444e212 Fix typo 2020-04-03 12:30:46 -07:00
Andy Wilkinson 34e602652c Polish new layered jar support 2020-04-03 10:47:57 +01:00
Stephane Nicoll 3e936dd735 Polish 2020-04-03 10:36:06 +02:00
Stephane Nicoll c88ef6215f Polish 2020-04-03 10:34:23 +02:00
Phillip Webb 12bc890e75 Update Maven and Gradle layer customization docs
Update the Maven and Gradle documentation following the refined
layer customization changes.

See gh-20526
2020-04-03 00:34:27 -07:00
Madhura Bhave d61a79d90b Support flat jar layering with layertools
Update layertools to support the flat jar format. Layers are now
determined by reading the `layers.idx` file.

Closes gh-20813
2020-04-03 00:34:27 -07:00
Andy Wilkinson bfa04e6574 Support flat jar layering with Gradle
Update the Gralde plugin so that layered jars now use the regular "flat"
format. The layers.idx file now describes which layer each file should
be placed.

See gh-20813

Co-authored-by: Phillip Webb <pwebb@pivotal.io>
2020-04-03 00:34:27 -07:00
Madhura Bhave 4e3cdf936f Support flat jar layering with Maven
Update the Maven plugin so that layered jars now use the regular "flat"
format. The layers.idx file now describes which layer each file should
be placed.

See gh-20813

Co-authored-by: Phillip Webb <pwebb@pivotal.io>
2020-04-03 00:34:27 -07:00
Phillip Webb 3f806aa513 Create a new layer for loader classes
Create a dedicated layer that is used to hold the launcher support
classes. The layer sits between `dependencies` and
`snapshot-dependencies` so that the layer is sensible for both
SNAPSHOT and RELEASE versions of Spring Boot

Closes gh-20529
2020-04-03 00:09:30 -07:00
Phillip Webb 7bc7d86ad4 Refine layer customization for Maven and Gradle
Simplify layer customization logic for both Maven and Gradle and
refactor some internals of the Gradle plugin.

Both Maven and Gradle now use a simpler customization format that
consists of `application`, `dependencies` and `layer order` sections.
The `application`, `dependencies` configurations support one or more
`into` blocks that are used to select content for a specific layer.

Closes gh-20526
2020-04-03 00:03:21 -07:00
Andy Wilkinson 14718f3e8a Allow layertools to work without spring-boot jar
Update `spring-boot-jarmode-layertools` so that it no longer required
a `spring-boot` jar to run.

Closes gh-20815
2020-04-03 00:01:38 -07:00
Scott Frederick cc2852ce79 Polish 2020-04-01 18:43:11 -05:00
Scott Frederick a01c8452cb Support CNB builder platform API 0.3
This commit adds support for Cloud Native Buildpacks builder platform
API 0.3, which is the latest platform API available currently. Support
for platform API 0.1 has been removed, adopting the policy of the pack
CLI to support the current platform API version and one version prior.

Fixes gh-20757
2020-04-01 17:18:46 -05:00
Scott Frederick bb9e37e119 Use platform API builder image tags
CNB builder images are now being tagged in a manner that indicates
the version of the platform API implemented. This allows Spring Boot
to default to a builder tag that guarantees API compatibility while
allowing for updates to bundled buildpacks.

Fixes gh-20171
2020-04-01 16:18:05 -05:00
Phillip Webb 4dad56a491 Restructure and polish docker code
Restructure and polish docker code to fix a package tangle and
provide better separation of concerns.
2020-04-01 11:51:33 -07:00
Phillip Webb 9795262dc1 Polish 2020-04-01 11:20:56 -07:00
Andy Wilkinson 84e16d55ea Raise the minimum supported version of Gradle 6 to 6.3
Closes gh-20532
2020-03-31 19:48:17 +01:00
Scott Frederick ac949d7851 Document remote Docker configuration
This commit adds documentation for the configuration required to
use a remote Docker daemon with the `build-image` Maven goal or the
`bootBuildImage` Gradle task.

See gh-20538
2020-03-31 13:37:55 -05:00
Scott Frederick ed6e54218d Support remote Docker daemon for building images
Prior to this commit, the build plugin goal/task for building images
required a locally running Docker daemon that was accessed via a
non-networked socket or pipe.

This commit adds support for remote Docker daemons at a location
specified by the environment variable `DOCKER_HOST`. Additional
environment variables `DOCKER_TLS_VERIFY` and `DOCKER_CERT_PATH`
are recognized for configuring a secure TLS connection to the daemon.

Fixes gh-20538
2020-03-30 17:06:02 -05:00
dreis2211 674f1e77b5 Fix typos
See gh-20704
2020-03-28 08:42:59 +01:00
Madhura Bhave ad164269e9 Update classpath index to use jar name instead of full path
See gh-20564
2020-03-25 10:46:59 -07:00
Stephane Nicoll 089c0471fa Test the Gradle Plugin against Gradle 6.3
Closes gh-20669
2020-03-25 09:57:04 +01:00
Stephane Nicoll 6aa3461611 Version layers configuration xsd
This commit provides a versioned xsd for the layers configuration of the
Maven plugin. The version starts at `2.3` to match with the Spring Boot
feature release in which this was introduced.

Closes gh-20663
2020-03-24 15:55:30 +01:00
dreis2211 f95e9543dc Fix typos in packaging docs
See gh-20630
2020-03-24 07:44:26 +01:00
Phillip Webb 0717de723f Polish 2020-03-23 20:03:44 -07:00
Phillip Webb 9a33a723fe Update copyright year of changed files 2020-03-23 14:15:08 -07:00
Phillip Webb ce1ae11c26 Merge branch '2.2.x' 2020-03-23 14:14:47 -07:00
Phillip Webb 16b5ea3414 Update copyright year of changed files 2020-03-23 14:13:33 -07:00
Madhura Bhave 7444306d0b Polish docs 2020-03-23 13:01:16 -07:00
Madhura Bhave a06f4f21e3 Combine application and resources layers into a single layer
Closes gh-20562
2020-03-23 12:59:42 -07:00
Madhura Bhave 952e529787 Rename "classes" to "application" in custom layer configuration
Closes gh-20539
2020-03-23 10:44:03 -07:00
Scott Frederick 3f378e1276 Add command-line options for Gradle bootBuildImage parameters
This commit adds support for setting the image name and builder
parameters of the Gradle bootBuildImage task using command-line
options as an alternative to DSL configuration.

See gh-20520
2020-03-19 17:21:07 -05:00
Stephane Nicoll 579a6ac254 Adapt tests for support for Java 14
See gh-20576
2020-03-19 14:54:33 +01:00
Stephane Nicoll 0b7f198b54 Publish Maven plugin API
This commit enables javadoc generator for the Spring Boot Maven plugin.

This also harmonizes the structure of the documentation, with an `/api`
and a `/reference` root directories for the javadoc and the reference
guide respectively.

Closes gh-20127
2020-03-19 14:00:58 +01:00
Scott Frederick e607c6842f Polish Gradle layer configuration DSL
This commit modifies the DSL for custom layer configuration in the
Gradle plugin to avoid duplication of terms that could be confusing.

Fixes gh-20563
2020-03-18 16:21:40 -05:00
Stephane Nicoll 0f5ca030db Polish "Add Java 14 CI"
See gh-20413
2020-03-18 15:09:14 +01:00
Stephane Nicoll 2e2f839bc8 Upgrade to Gradle 6.3 RC2
Closes gh-20558
2020-03-18 14:29:15 +01:00
Andy Wilkinson 9b817caff3 Revert "Update extract to write files to their original, unlayered location"
This reverts commit 9f3bc78f36.
2020-03-18 12:21:46 +00:00
Andy Wilkinson 9f3bc78f36 Update extract to write files to their original, unlayered location 2020-03-18 09:51:57 +00:00
Scott Frederick 44f7508825 Fix BuildImageMojo javadoc. 2020-03-17 19:12:47 -05:00
Scott Frederick 08e96427de Add command-line properties for Maven build-image options
This commit adds support for setting the image name and builder
parameters of the Maven spring-boot:build-image goal using command-line
properties as an alternative to plugin configuration in pom.xml. Per
Maven conventions, a value in pom.xml configuration will override a
command-line property when both are provided.

Fixes gh-20520
2020-03-17 18:40:37 -05:00
Madhura Bhave fb8b531bfd Polish 2020-03-16 17:45:56 -07:00
Madhura Bhave 3e8ee2a296 Add missing package-info.json
Closes gh-20516
2020-03-16 16:11:02 -07:00
Madhura Bhave 84b2e8c308 Rename classes package to application
Closes gh-20526
2020-03-16 16:03:29 -07:00
Scott Frederick 3dea2201c4 Use Gradle's configuration avoidance API
Register Boot Gradle tasks instead of creating them so they can be
loaded lazily.

Closes gh-18881
2020-03-16 17:49:34 -05:00
Scott Frederick f2dadf5a87 Add support for customizing layers in Gradle
This commit adds configuration to the Spring Boot Gradle plugin that
allows the names and contents of layers to be customized in the build
configuration.

Fixes gh-20296
2020-03-16 17:27:32 -05:00
Andy Wilkinson c4a55a5fb4 Fail fast when attempting to repackage a reproducible war
Maven's war plugin does not support reproducible builds, resulting in
the entries in the war file not being written in a consistent order
from build to build.

Closes gh-20176
2020-03-16 20:29:37 +00:00
Andy Wilkinson ca202ad59f Support Maven's outputTimestamp when repackaging jars and wars
Closes gh-20176
2020-03-16 17:19:52 +00:00
Madhura Bhave e49e62df5c Add support for customizing layers in Maven
This commit adds an additional 'layers/configuration' property that can
be used to refer to a separate layers configuration file. This separate
file defines:

* The layers and their order of precedence,
* How libraries are handled using filters that match against the
coordinates of each library, and
* How classes are handled using filters that match against the location
of the entry

An XSD to validate the XML configuration file is available.

Closes gh-20295

Co-authored-by: Stephane Nicoll <snicoll@pivotal.io>
2020-03-12 14:50:08 +01:00
Johnny Lim 8526e66939 Polish
See gh-20498
2020-03-11 12:17:58 +01:00
dreis2211 53e8e49552 Fix JarFileTests for multi-release JARs on JDK14
See gh-20180
2020-03-07 16:55:02 +01:00
dreis2211 daa3855fc8 Test the Gradle Plugin against Gradle 6.2.2
See gh-20385
2020-03-04 14:56:20 +01:00
dreis2211 9588188800 Use isEmpty() where possible
See gh-20370
2020-03-03 18:33:26 -05:00
Scott Frederick 296a13a479 Fix unit test case formatting 2020-02-27 16:43:56 -06:00
Scott Frederick b00ed5b143 Remove unused imports 2020-02-27 16:17:19 -06:00
Scott Frederick ce03f501c4 Merge pull request #20297 from mikesmithson 2020-02-27 16:10:56 -06:00
Scott Frederick ada0741e10 Polish Docker client exception handling 2020-02-27 16:09:30 -06:00
Mike Smithson 6f095d6fec Improve error message from image building
Translate IOException to DockerException for a more meaningful error
message when the Docker daemon is not available.

Fixes gh-20151
2020-02-27 15:51:58 -06:00
Scott Frederick e60a7ea8d6 Fix Maven plugins tests on Windows
This commit fixes problems with file path separators and command
line argument quoting in Maven plug integration tests when run on
Windows.

Fixes gh-20244
2020-02-26 16:50:15 -06:00
Scott Frederick 509a1f1d41 Configure buildpack to use target Java version
With this commit, the Maven `spring-boot:build-image` goal and the
Gradle `bootBuildImage` task will configure the OpenJDK buildpack
to use the same JRE version as the project's target version,
provided the buildpack Java version is not explicitly set in the
build configuration.

Fixes gh-20172
2020-02-25 15:11:42 -06:00
dreis2211 442733600e Test the Gradle plugin against Gradle 6.2.1
See gh-20310
2020-02-25 05:52:00 -05:00
Stephane Nicoll c0c097117a Polish
See gh-20244
2020-02-21 09:27:00 +01:00
Scott Frederick 23e781033c Merge branch '2.2.x'
Closes gh-20244
2020-02-20 14:43:55 -06:00
Scott Frederick 625b40aa90 Prefer arguments in POM over spring-boot.run.arguments
This commit changes the order of precedence for the `arguments` property
of the AbstractRunMojo so that values specified in the POM override
values provided on the command line using `spring-boot.run.arguments`.
This brings the `arguments` property in line with all other Mojo
parameters.

Fixes gh-20024
2020-02-20 13:09:20 -06:00
Madhura Bhave c5bce2b99d Fix gradle plugin validation error 2020-02-19 19:15:13 -08:00
Madhura Bhave 15cd590f7f Allow users to opt out of including the layer tools in a layered jar
For Maven, the layer configuration is now an additional configuration
option instead of a layout type.

Closes gh-19866
2020-02-19 17:28:27 -08:00
Johnny Lim 8be8a8421d Polish
See gh-20226
2020-02-19 09:34:46 +01:00
dreis2211 d55bc5f850 Test the Gradle Plugin against Gradle 6.2
See gh-20222
2020-02-19 09:26:54 +01:00
Madhura Bhave aa09058d8c Remove implicit layers support from the layer tools
Closes gh-20187
2020-02-18 16:23:25 -08:00
dreis2211 866c441d70 Upgrade to Gradle 6.2
See gh-20213
2020-02-18 14:39:10 +00:00
dreis2211 4f824bf9ad Fix duplicate words
See gh-20210
2020-02-18 13:34:56 +01:00
dreis2211 76d2bc27eb Explicitly set java home in Maven Plugin integration tests
See gh-20193
2020-02-18 12:05:43 +00:00
Stephane Nicoll 03bee83991 Update copyright date
See gh-20192
2020-02-16 17:20:48 +01:00
zhangt2333 e2d87a89d0 Polish
See gh-20192
2020-02-16 17:19:18 +01:00
Andy Wilkinson e065ee7be2 Merge branch '2.1.x' into 2.2.x
Closes gh-20183
2020-02-14 14:47:03 +00:00
Andy Wilkinson b9c2d775a9 Merge branch '2.2.x'
Closes gh-20185
2020-02-14 14:43:46 +00:00
Andy Wilkinson d61b035640 Merge branch '2.1.x' into 2.2.x
Closes gh-20183
2020-02-14 13:54:23 +00:00
Andy Wilkinson c8907d46b4 Fix up-to-date checking of build info properties
Closes gh-20135
2020-02-14 11:56:19 +00:00
Andy Wilkinson 8577a39a96 Upgrade to Spring Asciidoctor Extensions 0.4.1.RELEASE
Closes gh-20158
2020-02-13 11:45:29 +00:00
Scott Frederick e294d26458 Set ephemeral builder container creation to a fixed date
This commit fixes the `Created` date and time of the ephemeral builder
container image at the Windows epoch plus one second
(1980-01-01T00:00:01Z). This date matches the created date of the builder
image and influences the created date of the resulting image. Using
a fixed date for images ensures that the digest is consistent for all
images with the same version.

Fixes gh-20126
2020-02-12 13:55:54 -06:00
Scott Frederick 191dce3f5e Set Spring Boot version in ephemeral builder
This commit adds a `createdBy` structure to the metadata of the ephemeral
builder container image that identifies Spring Boot as the creator of the
image, along with the Spring Boot version.

See gh-20126
2020-02-12 13:31:21 -06:00
dreis2211 cfc16c2589 Remove redundant jar task configuration
See gh-20113
2020-02-11 13:54:57 +01:00
Stephane Nicoll 3229142188 Merge branch '2.2.x'
Closes gh-20121
2020-02-11 13:50:54 +01:00
Stephane Nicoll 765b2178d1 Document spring-boot.run.arguments behaviour with multiple arguments
Closes gh-19998
2020-02-11 13:39:10 +01:00
Madhura Bhave ec42dcd173 Fix typo 2020-02-10 15:22:13 -08:00
Scott Frederick 12c640e133 Upgrade default image builder version
This commit upgrades the default CNB builder image from
cloudfoundry/cnb:0.0.43-bionic to cloudfoundry/cnb:0.0.53-bionic.
It also adds integration tests for the Maven and Gradle plugins
to verify both versions are supported.
2020-02-06 17:24:29 -06:00
Scott Frederick d07062652e Add support for CNB platform API v0.2
Cloud Native Buildpacks platform API version 0.2 introduced
two breaking changes: the order of invoking the restore and analyze
phases was reversed, and the cache phase was removed in favor of
distributing caching across other phases.

This commit adds support for Cloud Native Buildpacks builders that
implement platform API version 0.2, while maintaining compatibility
with builders that implement Lifecycle version platform API
version 0.1.

Closes gh-19829
2020-02-06 17:24:29 -06:00
Johnny Lim 6818279751 Fix typo
See gh-20049
2020-02-06 16:39:25 +01:00
dreis2211 268f696d19 Add missing deployed plugin to modules
This commit registers 'org.springframework.boot.deployed' to
spring-boot-configuration-metadata and spring-boot-properties-migrator
to make sure they are deployed as expected.

See gh-20051
2020-02-06 16:29:20 +01:00
Andy Wilkinson 5c2b28cb57 Merge branch '2.2.x'
Closes gh-20043
2020-02-05 14:10:04 +00:00
Andy Wilkinson b6a408ae77 Upgrade to Spring Asciidoctor Extensions 0.4.0.RELEASE
Closes gh-20041
2020-02-05 14:04:14 +00:00
Stephane Nicoll b5e23e7405 Update copyright year of changed files
See gh-20020
2020-02-03 17:39:40 +01:00
Johnny Lim b67ece48e4 Polish
See gh-20020
2020-02-03 17:37:01 +01:00
dreis2211 e4a95a8047 Upgrade to Ivy 2.5.0
See gh-20022
2020-02-03 17:35:33 +01:00
dreis2211 326092b69e Upgrade to Ant 1.10.7
See gh-20002
2020-02-03 10:29:24 +01:00
Andy Wilkinson bca98c5126 Use a RegularFileProperty to configure BootBuildImage's input jar
Closes gh-20010
2020-02-02 14:39:50 +00:00
Johnny Lim e6d5f5a271 Polish
See gh-19995
2020-02-01 09:24:20 +01:00
Phillip Webb cbacab5e26 Polish 2020-01-30 17:14:36 -08:00
Phillip Webb 1eee83a07e Update copyright year of changed files 2020-01-30 17:09:49 -08:00
Phillip Webb 234c5033d4 Polish whitespace 2020-01-30 17:09:49 -08:00
Scott Frederick 653cabe2ce Add documentation for gradle bootBuildImage task 2020-01-30 17:54:15 -06:00
Madhura Bhave bceed1305f Jar files added after build time should be added to classpath
Fixes gh-19973
2020-01-30 15:38:49 -08:00
Scott Frederick b281af0b9b Remove adding of existing layers to EphemeralBuilder
Layers were being added to the EphemeralBuilder each time one was
created, but those layers already existed in the base builder image.

Closes gh-19832
2020-01-30 16:34:02 -06:00
Andy Wilkinson 7b0d1eaffc Test the Gradle Plugin against Gradle 6.1.1
Closes gh-19912
2020-01-30 15:12:30 +00:00
Andy Wilkinson 2725264be1 Polishing formatting of DockerApi 2020-01-30 14:08:45 +00:00
Andy Wilkinson 28442b5ca5 Lower the minimum required Docker API version to 1.24
Closes gh-19945
2020-01-30 13:57:18 +00:00
Andy Wilkinson 54b3f480b4 Use posix long names when creating tar archive for image building
Fixes gh-19964
2020-01-30 13:31:27 +00:00
Scott Frederick c6a6024062 Stop image building on error from builder
Previously, the image builder used by the build tool plugins ignored
errors from lifecycle phases and continued with subsequent phases.

This commit inspects the status of the builder container after each
lifecycle phase and aborts the image building process if the exit
status of the container after any phase is non-zero.

Fixes #19949
2020-01-29 17:51:32 -06:00
dreis2211 d8e2349e47 Use Supplier variants of Assert
See gh-19864
2020-01-28 15:04:11 +01:00
Stephane Nicoll 9fbaf7611b Merge branch '2.2.x'
Closes gh-19966
2020-01-28 14:43:54 +01:00
Stephane Nicoll b420bdb3ac Merge branch '2.1.x' into 2.2.x
Closes gh-19965
2020-01-28 14:43:30 +01:00
dreis2211 db2bacc62a Fix Gradle plugin documentation links
See gh-19961
2020-01-28 14:41:05 +01:00
dreis2211 741a4f4b2b Fix links in Maven Plugin documentation
See gh-19952
2020-01-28 10:50:36 +01:00
Stephane Nicoll 5410148f79 Improve documentation of 'image' parameter of Maven Plugin
Closes gh-19950
2020-01-27 20:56:42 +01:00
Stephane Nicoll 11c5fba355 Remove unnecessary execution-specific configuration in documentation
This documentation moves the specific `build-image` execution
configuration example of the Maven plugin documentation to the general
plugin configuration. This makes sure that it works in most cases and
an execution-specific configuration is not required here anyway.

Closes gh-19946
2020-01-27 20:12:00 +01:00
Stephane Nicoll 07a1783572 Polish "Introduce appendix section with version properties"
See gh-19898
2020-01-27 14:53:52 +01:00
dreis2211 65394582f6 Introduce appendix section with version properties
With the introduction of Gradle we lost the list of version properties
that were previously in the spring-boot-dependencies POM and were also
linked inside the documentation. This commit introduces an appendix
section in the docs and links the appropriate places to the new section
to restore discoverability.

See gh-19898
2020-01-27 14:53:32 +01:00
Andy Wilkinson 63b736d1f0 Fix NPE when waiting for named socket path to become available
Fixes gh-19941
2020-01-27 11:38:19 +00:00
Stephane Nicoll 3290313eb7 Fix Docker socket creation on Windows
Closes gh-19908
2020-01-27 07:29:16 +01:00
dreis2211 d75de39456 Upgrade to JUnit Jupiter 5.6.0
See gh-19907
2020-01-26 08:39:12 +01:00
Madhura Bhave 1d62debf11 Fix typo 2020-01-24 16:37:48 -08:00
Stephane Nicoll 0bd03fa278 Fix xml syntax in example
Closes gh-19906
2020-01-24 16:01:44 +01:00
dreis2211 d84ca1149c Test the Gradle Plugin against Gradle 6.1
See gh-19776
2020-01-24 13:46:00 +01:00
Andy Wilkinson cbee16318f Fix version references in Maven Plugin's reference documentation
Closes gh-19878
2020-01-23 16:37:18 +00:00
Stephane Nicoll 331ebe90e0 Restore @since on build-image parameters 2020-01-23 16:47:03 +01:00
Stephane Nicoll 63019ab3f1 Add documentation for Maven plugin's build-image support
Closes gh-19830
2020-01-23 16:35:45 +01:00
Stephane Nicoll 6df5e7af4f Add integration tests for Maven plugin's build-image support
See gh-19830
2020-01-23 16:06:11 +01:00
Andy Wilkinson 0a9fe65443 Use line endings on all OSs when writing image config JSON
Previously \r\n was used on Windows and \n was used on other
platforms. This resulted in different JSON content being written to
the archive. As the config's entry name is the SHA-256 hash of its
content, it also resulted in the entry name being different.

This commit updates the JSON that's written into the archive to use
\n line endings, irrespective of the OS on which the image is being
built.

See gh-19828
2020-01-23 14:37:06 +00:00
Andy Wilkinson a0b4cdee44 Make line ending expectations in TotalProgressBarTests OS-independent
See gh-19828
2020-01-23 14:14:14 +00:00
Andy Wilkinson 1d396abec5 Fix bootBuildImage integration tests on Java 13
We build with Java 8, 11, and 13 without specifying target
compatibility for the bytecode of the app that's placed in the image.
The built image uses Java 11 and when the app is built with Java 13
it fails to start as the Java 11 VM can't read that Java 13 bytecode.

This commit configures the app that's placed in the image to be built
with target compatibility of 1.8. This allows it to be compiled with
all version of Java with which we build and to also be compatible
with the JVM that's in the image.

See gh-19831
2020-01-23 13:50:22 +00:00
Stephane Nicoll 105db66553 Polish 2020-01-23 14:04:19 +01:00
Stephane Nicoll e044817fe7 Migrate remaining use of ClassLoader.loadClass to Class.forName
Closes gh-19824
2020-01-23 13:15:45 +01:00
Andy Wilkinson 01a0a54f78 Include layertools in layered jars build with Gradle
Closes gh-19867
2020-01-23 11:43:19 +00:00
Andy Wilkinson 288f5ceaee Fix zip compression of libs in layered jars
Closes gh-19792
2020-01-23 11:40:13 +00:00
Andy Wilkinson 0bd0b2a6c0 Add support for building OCI images using the Gradle plugin
Closes gh-19831
2020-01-23 10:52:57 +00:00
Andy Wilkinson bc452bc094 Polish BootJarTests
See gh-19847
See gh-19792
2020-01-23 10:05:33 +00:00
Stephane Nicoll 95be419527 Use Class.forName rather than ClassLoader.loadClass
This commit changes uses of ClassLoader.loadClass to Class.forName for
consistency with what was initiated in #19342 and better compatibility
with GraalVM.

Closes gh-19824
2020-01-23 10:47:53 +01:00
Phillip Webb b5b4a02c61 Automatically add jarmode jars when packaging
Update the `Packager` to automatically add the layertools jarmode jar
when producing a layered jar.

Closes gh-19865
2020-01-22 23:14:47 -08:00
Phillip Webb 2b83edeb27 Fix jarmode support in unexploded jars
Update `LaunchedURLClassLoader` to ensure that the `JarModeLauncher`
is created in the correct classloader.

Prior to this commit the launcher was created by the application
classloader and did not have access to any of the required
`org.springframework` classes.

See gh-19848
2020-01-22 23:07:18 -08:00
Phillip Webb 57db621b70 Polish 2020-01-22 23:06:58 -08:00
Phillip Webb 77bbe089b2 Update copyright year of changed files 2020-01-22 20:24:23 -08:00
Phillip Webb 71ce212f7f Rename spring-boot-layertools
Rename `spring-boot-layertools` to `spring-boot-jarmode-layertools`.

Closes gh-19853
2020-01-22 20:24:23 -08:00
Madhura Bhave 13f7db2d8c Write classpath index file from Gradle plugin
Closes gh-19847
2020-01-22 19:32:08 -08:00
Phillip Webb e0013454b5 Use parentheses when declaring dependencies
Update all dependencies declarations to use the form `scope(reference)`
rather than `scope reference`.

Prior to this commit we declared dependencies without parentheses unless
we were forced to add them due to an `exclude`.
2020-01-22 16:02:38 -08:00
Phillip Webb 0209cd3e4c Polish quote form used in Gradle scripts
Replace Gradle single quote strings with the double quote form
whenever possible. The change helps to being consistency to the
dependencies section where mostly single quotes were used, but
occasionally double quotes were required due to `${}` references.
2020-01-22 15:49:52 -08:00
Madhura Bhave df5b0f1163 Add support for layered jars in gradle plugin
Closes gh-19792

Co-authored-by: Andy Wilkinson <awilkinson@pivotal.io>
2020-01-22 14:53:36 -08:00
Phillip Webb 951d0b0fdf Fix exploded jar classloader issues
Fix a bug in `ExplodedURLClassLoader` and merge the code into the
existing `LaunchedURLClassLoader` class. Also polish a few method
names relating to layer support.

See gh-19848
See gh-19767
2020-01-22 12:56:14 -08:00
Phillip Webb e28338d6cd Rename spring-boot-cloudnativebuildpack
Rename the `spring-boot-cloudnativebuildpack` module to
`spring-boot-buildpack-platform` and update the the package
name to `org.springframework.boot.buildpack.platform`.

Closes gh-19851
2020-01-22 11:01:32 -08:00
dreis2211 23e87f8266 Treat Java 11+'s NoSuchFileException the same as FileNotFoundException
See gh-19850
2020-01-22 11:45:11 +00:00
Phillip Webb e513fe4666 Add layertools jarmode
Add a new `spring-boot-layertools` module which provides jarmode support
for working with layers. The module works with both classic fat jars,
as well as layered jars.

Closes gh-19849
2020-01-22 01:26:55 -08:00
Phillip Webb 73a42050d6 Add jarmode support to the loader code
Update the `Launcher` class to allow a packaged jar to be  launched in
a different mode. The launcher now checks for a `jarmode` property and
attempts to find a `JarMode` implementation using the standard
`spring.factories` mechanism.

Closes gh-19848
2020-01-22 01:23:11 -08:00
Phillip Webb d5a70688cb Reserve layer names for future use
Update layered jar support so that the name `ext` and any name
starting `springboot` are reserved.

See gh-19767
2020-01-22 01:13:54 -08:00
Phillip Webb 7d8f8d47c8 Fix packager code to generate layer index file
Update `Packager` to create the layer index file when repackaging.

Closes gh-19767
2020-01-21 23:26:19 -08:00
Phillip Webb bfd2ca7fd9 Polish Gradle expression references
Expand all expression `$` references to the full `${...}` form.
2020-01-21 18:33:33 -08:00
Andy Wilkinson 89237634c7 Fix classpath used for Gradle Plugin integration tests in Eclipse
See gh-19841
2020-01-21 14:59:07 +00:00
Andy Wilkinson 1e72fa202c Rework loader-tools resource generation to work with Buildship
Previously, the generated resources were added as an output to the
main source set. This worked on the command line, but resulted in
the META-INF folder that contains the loader jar not being on the
classpath of downstream projects in Eclipse.

This commit changes loader-tools to add the generated resources
as a srcDir to the main source set. This results in it appearing on
the classpath of other projects in Eclipse that depend on loader-tools
such as the Gradle plugin, thereby allowing its tests to be run in
the IDE as well as on the command line.

Fixes gh-19841
2020-01-21 12:52:02 +00:00
Andy Wilkinson 62a848f1b1 Register JNA's native library integration in LinuxSocketDomain
See gh-19836
2020-01-21 11:09:31 +00:00
Stephane Nicoll d421c63747 Disable integration test on Linux
See gh-19836
2020-01-21 10:46:55 +01:00
Stephane Nicoll ffd7670843 Attempt to make DockerApiIntegrationTests work on Linux 2020-01-21 10:19:56 +01:00
Phillip Webb cb4928ad51 Add build-image support to the maven plugin
Add a new `build-image` goal to the Maven plugin to allow Docker images
to be create via using the cloud native buildpack.

See gh-19830
2020-01-20 23:48:47 -08:00
Phillip Webb 16e6bc89ed Create a new ImagePackager tools class
Pull functionality from `Repackager` into a new `Packager` base class
and develop a variant for Docker image creation. The new `ImagePackager`
class provides a general purpose way to construct jar entries without
being tied to an actual file. This will allow us to link it to a
buildpack and provide application content directly.

Closes gh-19834
2020-01-20 23:48:47 -08:00
Phillip Webb aa1954717c Add cloud native buildpack module
Add a Java implementation of the buildpacks.io specification allowing
projects to be packaged into OCI containers. The `builder` class
provides a Java equivalent of `pack build` command and is based on
the `pack` CLI Go code published at https://github.com/buildpacks/pack.

Closes gh-19828
2020-01-20 23:48:47 -08:00
Andy Wilkinson 408f17f821 Close FileInputStreams in RepackagerTests 2020-01-17 20:04:31 +00:00
Andy Wilkinson 724597d45f Use a centrally managed version for commons-compress 2020-01-17 10:34:55 +00:00
Phillip Webb fd792cedaf Polish DisabledIfDockerUnavailable
Convert `DisabledIfDockerUnavailable` to be an annotation and make
it slightly less noisy.
2020-01-16 16:54:43 -08:00
Madhura Bhave cf01f9fba0 Add tests for configuring layered jar layout
Closes gh-19768
2020-01-16 11:27:41 -08:00
Scott Frederick 8f102aee68 Remove deprecated 2.2 code
See gh-19699
2020-01-16 14:44:52 +01:00
Andy Wilkinson 9d5975bd09 Upgrade to Gradle 6.1
Closes gh-19772
2020-01-16 10:00:45 +00:00
Phillip Webb 8fde088574 Add layered jar layout support to the maven plugin
Update the Maven plugin with a new `LAYERED_JAR` layout option.

See gh-19768
2020-01-15 23:33:29 -08:00
Madhura Bhave e9d61bac75 Support generation and loading of layered jars
Support an alternative fat jar format that is more amenable to Docker
image layers.

The new format arranges files in the following structure:

	BOOT-INF/
	  layers/
	    <layer-name #1>
	      /classes
	      /lib
	    <layer-name #2>
	      /classes
	      /lib

The `BOOT-INF/layers.idx` file provides the names of the layers and the
order in which they should be added (starting with the least changed).

The `JarLauncher` class can load layered jars in both fat and exploded
forms.

Closes gh-19767

Co-authored-by: Phillip Webb <pwebb@pivotal.io>
2020-01-15 23:32:58 -08:00
Madhura Bhave 45b1ab46c3 Add classpath index support for exploded archives
Update the `Repackager` class so that an additional `classpath.idx` file
is written into the jar that provides the original order of the
classpath. The `JarLauncher` class now uses this file when running as
an exploded archive to ensure that the classpath order is the same as
when running from the far jar.

Closes gh-9128

Co-authored-by: Phillip Webb <pwebb@pivotal.io>
2020-01-15 23:31:17 -08:00
Phillip Webb ad72f86bdb Polish loader and loader-tools
Polish and refactor `spring-boot-loader` and `spring-boot-loader-tools`
to make it easier to add indexing and layering support.

Closes gh-19766
2020-01-15 23:29:11 -08:00
Andy Wilkinson 56e30258fb Merge branch '2.2.x' 2020-01-15 20:45:42 +00:00
Andy Wilkinson b7e250eb04 Merge branch '2.1.x' into 2.2.x 2020-01-15 20:45:24 +00:00
Andy Wilkinson ebebe09a9d Fix file handle leak in JarFileTests
The JarFile was not being closed which linked a file handle and caused
a test failure on Windows.

The local variable has been renamed as, when declared in a
try-with-resources, Checkstyle was confused by the shadowing of the
jarFile field and required references to jarFile within the try-block
the be prefixed with this.

See gh-19595
2020-01-15 20:43:54 +00:00
Andy Wilkinson 714a187d8f Rework dep mgmt again to avoid consumers picking up strict constraints
This paves the way for publishing Gradle module metadata once the
problem caused by snapshot versions and our two-step publication
process has been addressed.

See gh-19609
2020-01-15 12:33:18 +00:00
Madhura Bhave aae1151f12 Merge branch '2.2.x'
Closes gh-19714
2020-01-14 18:52:35 -08:00
Madhura Bhave 3bf943d597 Merge branch '2.1.x' into 2.2.x
Closes gh-19713
2020-01-14 18:51:50 -08:00
Madhura Bhave f375277026 Merge pull request #19595 from nosan
* pr/19595:
  Polish "Limit ChronoField values to their range"
  Limit ChronoField values to their range

Closes gh-19595
2020-01-14 18:27:30 -08:00
Madhura Bhave 91e459a5d4 Polish "Limit ChronoField values to their range"
See gh-19595
2020-01-14 18:26:01 -08:00
Dmytro Nosan 9bc68b9877 Limit ChronoField values to their range
See gh-19595
2020-01-14 18:25:28 -08:00
Andy Wilkinson 244b5391bc Fix file handle leak in JarFileArchiveTests
Closes gh-19655
2020-01-14 17:20:29 +00:00
Andy Wilkinson aefe52e4d0 Revert "Rework dep management to avoid consumers picking up strict constraints"
This reverts commit b34a311d02 as,
having disabled the publishing of Gradle's module metadata (4f75ab5),
the changes are no longer needed.

See gh-19609
2020-01-14 12:15:53 +00:00
Phillip Webb 862462b791 Update copyright year of changed files 2020-01-13 17:04:19 -08:00
Phillip Webb f57281340c Merge branch '2.2.x' 2020-01-13 16:46:49 -08:00
Phillip Webb 3cfbfebbb1 Merge branch '2.1.x' into 2.2.x 2020-01-13 16:45:40 -08:00
Phillip Webb 9bd49562fe Update copyright year of changed files 2020-01-13 14:09:11 -08:00
Andy Wilkinson b34a311d02 Rework dep management to avoid consumers picking up strict constraints
Previously, enforcedPlatform dependencies were using to pull in the
constraints defined in spring-boot-dependencies and
spring-boot-parent and applied them strictly so that the constrained
version had to be used. This worked as intended in Spring Boot's own
build but incorrectly enforced those same strict version requirements
on external consumers of Spring Boot's modules.

This commit reworks how Spring Boot defines its internal dependency
management so that platform dependencies are exposed to external
consumers while enforced platform dependencies are using internally.

See gh-19609
2020-01-13 19:59:56 +00:00
dreis2211 d454c9653c Disable tests on Java 13 that require an incompatible Gradle version
See gh-19680
2020-01-13 16:51:55 +00:00
Stephane Nicoll ca1710ee56 Upgrade to Apache Cassandra 4.3.1
See gh-19588
2020-01-13 15:12:41 +01:00
Andy Wilkinson e415f759a2 Raise the minimum supported version of Gradle to 5.6
Closes gh-18777
2020-01-13 12:10:13 +00:00
Andy Wilkinson c66d2e8039 Relax the Gradle plugin's Kotlin version constraint
Enforcing the spring-boot-dependencies platform makes for too strong
an opinion about the version of Kotlin that should be on the build
script's classpath. It clashes with the version of Kotlin that's
embedded in Gradle and used with Gradle's Kotlin DSL.

This commit switches to a normal platform (rather than an enforced
platform) which allows it to express an opinion about the version of
Kotlin without making it a strict requirement.

Closes gh-19609
2020-01-13 11:00:49 +00:00
Andy Wilkinson 7fda317f0d Merge branch '2.1.x' into 2.2.x
Closes gh-19657
2020-01-12 10:42:42 +00:00
Andy Wilkinson 617ebaf3c0 Isolate Gradle Plugin build from other Gradle configuration
Closes gh-19656
2020-01-12 10:41:38 +00:00
Brian Clozel e0171a5da8 Polish 2020-01-10 22:29:57 +01:00
Andy Wilkinson b5ae8b0af5 Disable tests that use Docker when Docker is unavailable
Closes gh-19616
2020-01-10 20:35:18 +00:00
Andy Wilkinson ce99db1902 Port the build to Gradle
Closes gh-19609
Closes gh-19608
2020-01-10 14:15:35 +00:00
Andy Wilkinson bdffa860d9 Increase startup timeout for Docker containers
Closes gh-19569
2020-01-08 11:39:36 +00:00
Andy Wilkinson 30c124f549 Merge branch '2.2.x'
Closes gh-19554
2020-01-07 12:06:07 +00:00
Andy Wilkinson c57359ea3b Merge branch '2.1.x' into 2.2.x
Closes gh-19553
2020-01-07 12:05:21 +00:00
Andy Wilkinson d46406fcb9 Remove loading of non-existent properties file from antlib
Fixes gh-19552
2020-01-07 12:04:59 +00:00
Johnny Lim e4057dd528 Polish
See gh-19484
2019-12-30 14:57:29 +01:00
Stephane Nicoll e7f45d8a34 Polish "Add toolchains support for Spring Boot Maven Plugin"
See gh-18732
2019-12-26 12:03:18 +01:00
Dmytro Nosan eede16ff0a Add toolchains support for Spring Boot Maven Plugin
See gh-18732
2019-12-26 12:03:18 +01:00
Stephane Nicoll a2b2b46b83 Merge branch '2.2.x'
Closes gh-19463
2019-12-26 11:18:55 +01:00
Stephane Nicoll 6c016663fd Polish contribution
See gh-18711
2019-12-26 11:17:51 +01:00
Dmytro Nosan 1fb904acee Support commas embedded in command line arguments from Maven plugin
See gh-18711
2019-12-26 11:05:09 +01:00
Stephane Nicoll 2c1e81adf0 Polish 2019-12-26 10:42:40 +01:00
Stephane Nicoll 065fe9996d Merge branch '2.2.x'
Closes gh-19454
2019-12-24 11:00:23 +01:00
Stephane Nicoll ee98855905 Merge branch '2.1.x' into 2.2.x
Closes gh-19453
2019-12-24 10:59:58 +01:00
Stephane Nicoll 5dc6491807 Clarify documentation of repackage mojo's attach property
Closes gh-19021
2019-12-24 10:59:36 +01:00
Stephane Nicoll 6d9c176e19 Merge branch '2.2.x'
Closes gh-19441
2019-12-23 15:09:21 +01:00
Stephane Nicoll b3643965f0 Polish "Detect config props using builder pattern and generics"
See gh-19099
2019-12-23 14:57:48 +01:00
如梦技术 743f4a4cb1 Detect config props using builder pattern and generics
See gh-19099
2019-12-23 14:54:00 +01:00
Phillip Webb 93d9147864 Add deprecation documentation to Archive.iterator
See gh-16655
2019-12-19 16:52:47 -08:00
Andy Wilkinson ef2eb2f652 Remove accidental usage of Plexus's CollectionUtils
See gh-16655 and 8f5777cf
2019-12-14 17:42:26 +00:00
Phillip Webb 1b1c61a2ed Make processor output fully reproducible
Update `AutoConfigureAnnotationProcessor` to ensure that the generated
properties file is fully repeatable. Properties are now sorted and
written out directly to ensure that the timestamp comment is not
present.

Closes gh-19370
2019-12-13 13:04:49 -08:00
Phillip Webb 2fc12bc36c Merge branch '2.2.x' 2019-12-13 11:30:13 -08:00
Phillip Webb 26ff18f37d Merge branch '2.1.x' into 2.2.x 2019-12-13 11:29:51 -08:00
Phillip Webb accd830dd5 Update copyright header of changed files 2019-12-13 11:23:24 -08:00
dreis2211 3be05f61e1 Fix unknown tag in javadoc
See gh-19364
2019-12-12 17:04:25 -08:00
Madhura Bhave 8f5777cf9e Optimize JarLauncher when used with exploded jar
- Previously, we would create a JarFileArchive for all nested jars.
This was an additional overhead. We only need to create a JarFileArchive
for jars that can have nested jars in them. For all other jars we only need
the URL to build the classpath.
- While iterating over nested entries in the exploded jar, we only need to
look at BOOT-INF and we can skip any entry that does not match that.

Closes gh-16655

Co-authored-by: Phillip Webb <pwebb@pivotal.io>
2019-12-12 14:33:48 -08:00
Andy Wilkinson ab4e1c465f Merge branch '2.2.x'
See gh-19288
2019-12-05 10:25:12 +00:00
Andy Wilkinson 47b47c28a0 Reduce visibility of the Gradle plugin's test methods
See gh-19287
2019-12-05 10:24:48 +00:00
Andy Wilkinson f731c92b66 Merge branch '2.2.x' 2019-11-27 12:52:14 +00:00
Andy Wilkinson 76f03a8cad Fix reflective access to archiveBaseName property
Previously, reflective access to the archiveBaseName property
incorrectly treated the property as a String. It should have been
treated as a Property<String>. This caused an exception to be thrown
and the deprecated baseName property to be used as a fallback.

This commit corrects the reflective access to the archiveBaseName
property. It also updates the tests to fail if a build outputs a
deprecation warning. Tests that use Gradle's Maven plugin have been
updated to expect deprecation warnings when run with Gradle 6.0 where
the plugin is deprecated. Tests that configure an archive's base name
have been updated to use archiveBaseName when running with Gradle 6.0
and later.

Closes gh-18663
2019-11-27 12:52:05 +00:00
dreis2211 60640ea185 Fix link in new Maven Plugin docs
See gh-19108
2019-11-25 09:49:30 +01:00
Stephane Nicoll a76a864270 Polish "Replace the Maven Plugin's site with Asciidoctor documentation"
See gh-19080
2019-11-21 17:43:50 +01:00
Stephane Nicoll 30863eb041 Merge branch '2.2.x'
Closes gh-19088
2019-11-21 13:45:42 +01:00
dreis2211 347434ba81 Test the Gradle Plugin against Gradle 6.0.1
See gh-19065
2019-11-21 13:44:55 +01:00
Andy Wilkinson 3e2454f8c4 Replace the Maven Plugin's site with Asciidoctor documentation
Closes gh-19080

Co-authored-by: Stephane Nicoll <snicoll@pivotal.io>
2019-11-21 10:50:05 +00:00
Johnny Lim 96a029e44f Polish a test name
See gh-18999
2019-11-13 08:52:32 +01:00
Andy Wilkinson 379ba0dc00 Support Gradle 6.0
Previously, our Gradle plugin was not tested against Gradle 6.0,
a number of deprecation warnings were output when using the plugin
with Gradle 6, and some functionality related to the application
plugin did not work as expected.

This commit tests the plugin against Gradle 6. It also avoids calling
deprecated APIs. The plugin is compatibile against Gradle 4.10 where
the deprecated APIs' replacements are not available so reflection is
used to call the replcaements. Lastly, the way in which the base name
of the boot distribution that is created when the application plugin
is applied has been modified to ensure that it is effective when using
Gradle 6.

Closes gh-18663
2019-11-11 16:36:40 +00:00
Andy Wilkinson fc3f6a930d Merge branch '2.1.x' into 2.2.x
Closes gh-18940
2019-11-08 13:32:49 +00:00
Andy Wilkinson 5765cfe010 Allow 5 seconds for child to handle SIGINT before destroying it
Previously, when RunProcess handled a SIGINT it would immediately
attempt to destroy the process that it had run. This created a race
condition between the SIGINT being handled by the child process
and RunProcess destroying the child. The exact behavior of destroy
is implementation dependent and it may result in forcible termination
of the process where shutdown hooks are not called. This is what
happens on Windows. The exit code in such a case is 1 which prevents
anything from waiting for the process to complete from detecting
that it ended as a result of a SIGINT, leaving it with no choice but
to report an error. This is what happens with mvn spring-boot:run
with a forked process on Windows and results in the build failing.

This commit updates RunProcess to allow the child process to handle
the SIGINT itself, waiting for up to five seconds for that to happen
before the process is then destroyed. Given this time, the child
process exits with 130 which RunMojo already handles correctly as
indicating that the process died due to SIGINT and the build completes
with success as a result.

Fixes gh-18936
2019-11-08 12:41:13 +00:00
Johnny Lim ea51947741 Use try-with-resources blocks in JarFileArchiveTests
See gh-18883
2019-11-06 08:01:50 +01:00
Andy Wilkinson f1af8c5510 Merge branch '2.1.x'
Closes gh-18889
2019-11-05 15:50:51 +00:00
Andy Wilkinson 59bc3c5602 Prevent recursive config props from causing a stack overflow
Previously, when the configuration properties annotation processor
encountered a property that was the same as an outer type that had
already been processed, it would fail with a stack overflow error.

This commit introduces the use of a stack to track the types that
have been processed. Types that have been seen before are skipped,
thereby preventing a failure from occurring. We do not fail upon
encountering a recursive type to allow metadata generation to
complete. At runtime, the recursive property will not cause a problem
if it is not bound.

Fixes gh-18365
2019-11-05 15:35:11 +00:00
Stephane Nicoll b951e70d18 Merge branch '2.1.x'
Closes gh-18850
2019-11-04 09:57:48 +01:00
dreis2211 8955d5c1b5 Test the Gradle Plugin against Gradle 5.6.4
See gh-18845
2019-11-04 09:56:12 +01:00
Johnny Lim 45d85778b8 Polish
See gh-18838
2019-11-01 09:01:24 +02:00
Stephane Nicoll d6d32ec01d Polish 2019-10-29 09:02:25 +01:00
Alessandro Falappa 2c199b1296 Make optimizedLaunch property name more consistent
See gh-18702
2019-10-23 18:24:33 +02:00
Phillip Webb 83d4d94e8b Cache ModifiedClassPathClassLoaders
Closes gh-18694
2019-10-22 15:25:31 -07:00
Phillip Webb 8d08d654d1 Merge branch '2.1.x'
Closes gh-18693
2019-10-22 15:18:32 -07:00
Stephane Nicoll c05f88bf78 Polish "Add missing package-info files"
See gh-18632
2019-10-22 09:35:10 +02:00
Leo Li af114c93ee Add missing package-info files
See gh-18632
2019-10-22 09:30:04 +02:00
Andy Wilkinson 03f5791860 Merge branch '2.1.x'
Closes gh-18650
2019-10-18 10:37:39 +01:00
dreis2211 d17f11dbe1 Test the Gradle Plugin against Gradle 5.6.3
See gh-18648
2019-10-18 10:35:54 +01:00
Johnny Lim 137538f415 Remove accidental JavaVersion.current() call in BootRun
It was added accidentally in d2b28ceb.

See gh-18619
2019-10-16 13:40:21 +01:00
Stephane Nicoll 8108b556ad Fix resource cleanup in test
Closes gh-18569
2019-10-13 13:41:50 +02:00
Andy Wilkinson 9a89039172 Provide a marker artifact for Boot's Gradle plugin
Closes gh-18514
2019-10-11 16:51:29 -05:00
Kant Leung 2f73e196af Polish
See gh-18534
2019-10-08 07:38:21 -05:00
Phillip Webb 61873fbf42 Don't generate @Configuration metadata
Update `AutoConfigureAnnotationProcessor` to no longer store
`@Configuration.value` in the meta-data JSON since we never actually
read it.

Closes gh-16608
2019-10-02 21:41:31 -07:00
Phillip Webb 386c0a60a7 Relax @ConstructorBinding member class requirement
Update `@ConfigurationProperties` so that `@ConstructorBinding` classes
no longer need to repeat the annotation for their members.

Closes gh-18481
2019-10-02 17:17:44 -07:00
Stephane Nicoll 45f6668d03 Use @ConstructorBinding when generating meta-data
Update the configuration processor to use the newly introduced
`@ConstructorBinding` annotation to determine when meta data
should be generated from constructor parameters.

Prior to this commit, the processor had no good way to tell when
constructor parameters should be used instead of getters/setters.

Closes gh-17035
2019-10-02 13:36:27 -07:00
Andy Wilkinson 9e514ab7f9 Provide plugin release repository for Asciidoctor Extensions
See b5069a4f8a
2019-10-02 13:43:34 +01:00
Andy Wilkinson 46c30d6bb0 Merge branch '2.1.x'
Closes gh-18476
2019-10-02 10:48:57 +01:00
Andy Wilkinson 3d4157ad6d Correct SCM URLs in published poms
Previously, Maven's default behaviour was relied up which resulted
in the artifact ID being appended to each URL as it was inherited.
This behaviour can only be disabled in Maven 3.6 and later, a version
that we cannot use due to an incompatibility with the Flatten Plugin.

This commit works around Maven's default behaviour by defining
properties for the SCM URL, connection, and developer connection and
then explicitly defining the settings in each pom using these
properties. The explicit definition of the properties in each pom
prevents them being inherited from the parent, thereby disabling the
unwanted appending of the artifact ID to the URL.

Fixes gh-18328
2019-10-02 10:48:30 +01:00
Andy Wilkinson ed29eea365 Align Spring Asciidoctor Extension dependency with new module names 2019-10-01 14:54:03 +01:00
Stephane Nicoll 852b369ce1 Revert to fixed version 2019-10-01 15:20:23 +02:00
Andy Wilkinson a6f1619971 Use Asciidoctor extension to verify documented configuration properties
Closes gh-18451
2019-10-01 10:39:06 +01:00
Stephane Nicoll e0d6d90683 Merge branch '2.1.x'
Closes gh-18447
2019-10-01 08:06:23 +02:00
dreis2211 417bfc4c87 Fix comment position in ZipHeaderPeekInputStreamTests
See gh-18445
2019-10-01 08:05:08 +02:00
dreis2211 370998e91e Simplify pipe escaping for reference doc tables
Replace `{vbar}` with an escaped pipe character. Unfortunately
`{vbar}` does not render correctly with PDF generation.

See gh-18374
2019-09-28 22:02:27 -07:00
dreis2211 8a6e254465 Avoid need to escape pipe character in reference tables 2019-09-28 22:02:27 -07:00
Phillip Webb a13666d696 Polish "Simplify code"
See gh-18342
2019-09-26 19:12:18 -07:00
Yuyan 4d0da4b700 Simplify code
See gh-18342
2019-09-26 19:09:28 -07:00
Brian Clozel eeaa9bc6c1 Fix ref docs code snippet theme
This commit also fixes a link in the reference documentation.

See gh-18293
2019-09-24 11:25:57 +02:00
Andy Wilkinson 79b5fd9d73 Polish "Allow the user that runs the app to be specified via an env var"
See gh-16973
2019-09-21 20:14:49 +01:00
Wagner Macedo b57f35893c Allow the user that runs the app to be specified via an env var
See gh-16973
2019-09-21 17:57:20 +01:00
Phillip Webb 838e7eb605 Extract spring-doc-resources URL property
Update the build to use a shared spring-doc-resources URL
rather than repeating it multiple times.

See gh-18293
2019-09-20 21:38:56 -07:00
Andy Wilkinson 02ac089767 Polish "Support zip64 jars"
See gh-16091
2019-09-20 14:35:19 +01:00
Camille Vienot 1917e1eac5 Support zip64 jars
See gh-16091
2019-09-20 12:44:04 +01:00
Andy Wilkinson d5fc324537 Upgrade to Asciidoctor Maven Plugin 1.6.0
Closes gh-17234
2019-09-20 11:59:16 +01:00
Andy Wilkinson 7d3e53c94c Fix test expectations for run-fork JVM args on Java 13+
Closes gh-17008
2019-09-19 10:07:03 +01:00
Andy Wilkinson d2b28ceba5 Don't add -Xverify:none to JVM args when running on Java 13
Closes gh-17008
2019-09-18 21:51:41 +01:00
Andy Wilkinson 1b237de5f5 Use Awaitility in our own tests
Closes gh-18227
2019-09-13 20:50:14 +01:00
Johnny Lim 5b41c3b608 Polish
See gh-18192
2019-09-12 14:55:47 +02:00
Stephane Nicoll 39fed4a9d9 Fix binding detection of ConfigurationProperties contributed by @Bean
This commit makes sure that a ConfigurationProperties type contributed
by a `@Bean` factory method uses properties binding regardless of the
presence of a matching constructor.

`@Bean` method makes sure the user is in control and will be responsible
of creating the instance. As a result, binding of properties will not
happen there and therefore can only happen with regular JavaBean
accessors.

Closes gh-18184
2019-09-09 13:29:31 +02:00
Andy Wilkinson 0c0e2dd54b Merge branch '2.1.x'
Closes gh-18186
2019-09-09 11:16:30 +01:00
Andy Wilkinson 7b1e10ed00 Use one sentence per line in Actuator and Gradle plugin doc source
Closes gh-18185
2019-09-09 10:59:49 +01:00
Andy Wilkinson ff1983c9ae Merge branch '2.1.x'
Closes gh-18168
2019-09-06 14:38:45 +01:00
Andy Wilkinson 795c2f225f Support getComment() on a nested JarFile
Previously, calling getComment() on a nested jar file would result
in the outer jar file's comment being returned.

This commit updates the loader's JarFile to read the file's comment
from the central directory end record and return it from getComment().

Fixes gh-18128
2019-09-06 14:29:48 +01:00
Andy Wilkinson fc1889ee72 Merge branch '2.1.x'
Closes gh-18167
2019-09-06 14:04:54 +01:00
dreis2211 ae30515e5e Test the Gradle Plugin against Gradle 5.6.2
See gh-18164
2019-09-06 13:19:08 +01:00
Andy Wilkinson 4b5ebd8505 Process all non-private methods, not just public methods
Previously, the configuration processor would ignore any
@ConfigurationProperties-annotated methods that were not public. This
prevented metadata generation for package-private @Bean methods such
as those in DataSourceConfiguration's inner-classes for DBCP2, Hikari,
and Tomcat JDBC.

This commit updates the annotation processor so that it will process
any non-private method annotated with @ConfigurationProperties.

Fixes gh-18124
2019-09-04 14:26:12 +01:00
Andy Wilkinson 29080b87ec Protect autoconfigure module against slow starting test containers 2019-09-04 10:15:10 +01:00
dreis2211 07b857e57a Use disabledWithoutDocker option for @Testcontainers
See gh-18095
2019-09-03 09:51:53 +02:00
dreis2211 b4350a9d96 Remove unnecessary blank lines
See gh-18089
2019-09-03 08:48:10 +02:00
Andy Wilkinson a4b8d2401f Merge branch '2.1.x'
Closes gh-18094
2019-09-02 14:54:48 +01:00
Andy Wilkinson abba4fa9c9 Include exception's message in message printed by AP
Fixes gh-17974
2019-09-02 14:52:14 +01:00
Andy Wilkinson b463acb10f Merge branch '2.1.x'
Closes gh-18093
2019-09-02 14:42:21 +01:00
Andy Wilkinson edcaee375f Consider @Deprecated on field when determining property's deprecation
Fixes gh-17550
2019-09-02 14:39:24 +01:00
dreis2211 3e35a6616c Fix duplicated words
See gh-18004
2019-09-01 09:09:38 +02:00
Andy Wilkinson 7f8b3a7b86 Test the Gradle Plugin against Gradle 5.6.1
Closes gh-17995
2019-08-29 12:53:50 +01:00
dreis2211 26a22fa523 Test the Gradle Plugin against Gradle 5.6.1
See gh-17984

Closes gh-17984
2019-08-29 12:46:26 +01:00
Stephane Nicoll b57db504df Fix broken build due to Kotlin upgrade 2019-08-29 10:01:16 +02:00
Andy Wilkinson ab87b2a39b Polish 2019-08-19 16:05:43 +01:00
thelproad 9c1f503e46 Simplify if statements
See gh-17884
2019-08-17 06:50:32 +02:00
dreis2211 d4affd7f85 Use hasSize() assertion in favor of length checks
See gh-17874
2019-08-17 06:39:41 +02:00
Andy Wilkinson a785a5b58a Test the Gradle Plugin against Gradle 5.6
Closes gh-17883
2019-08-16 08:46:48 +01:00
dreis2211 56940fca97 Test the Gradle Plugin against Gradle 5.6
See gh-17876
2019-08-16 08:45:33 +01:00
dreis2211 b605cddb10 Polish some Collections API calls
See gh-17825
2019-08-11 10:36:10 +02:00
Madhura Bhave 8a9c60a29a Merge branch '2.1.x' 2019-08-08 11:52:50 -07:00
Madhura Bhave 541d3c4853 Fix typo 2019-08-08 11:52:05 -07:00
Stephane Nicoll 07cd67a3fe Tolerate null startTime
This commit prevents a potential NPE if the startTime of the
MavenSession is not available and fallbacks to the current time. This
can happen when invoking the plugin with Maven embedded in an IDE.

Closes gh-17810
2019-08-08 17:32:04 +02:00
Stephane Nicoll 1c8f727864 Polish "Simplify if statements"
See gh-17785
2019-08-08 14:35:29 +02:00
SaberXu c6c3a91f8d Simplify if statements
See gh-17785
2019-08-08 14:32:37 +02:00
Phillip Webb 2cdceb92bf Polish 2019-08-03 14:29:20 +01:00
Phillip Webb da4f436140 Change SearchStrategy EXHAUSTIVE to TYPE_HIERARCHY
Fixup references following upstream Spring Framework change.
2019-07-31 15:11:43 +01:00
Stephane Nicoll 5926547767 Merge branch '2.1.x'
Closes gh-17745
2019-07-31 15:15:21 +02:00
Stephane Nicoll 0c560795fd Harmonize settings.gradle documentation in Gradle getting started guide
See gh-17736
2019-07-31 15:11:53 +02:00
Dave Syer e7b0450a7f Add missing repositories to snapshot configuration
See gh-17736
2019-07-31 15:00:07 +02:00
Stephane Nicoll f68c7a751f Polish "Escape reserved asciidoc character in generated documentation"
See gh-17663
2019-07-31 10:17:14 +02:00
vivganes b0fa58e861 Escape reserved asciidoc character in generated documentation
See gh-17663
2019-07-31 10:06:38 +02:00
Phillip Webb 8bc780762a Merge branch '2.1.x' 2019-07-24 11:42:48 +01:00
Phillip Webb fb1dd8fe93 Merge branch '2.0.x' into 2.1.x 2019-07-24 11:41:32 +01:00
Phillip Webb 913e831f4e Merge '1.5.x' into 2.0.x 2019-07-24 11:39:58 +01:00
Stephane Nicoll f3a138da16 Skip Gradle Plugin test when building with JDK 13
See gh-16970
2019-07-24 08:49:52 +02:00
Stephane Nicoll 19eaf86efa Update multi release test jar to include Java 12
See gh-16970
2019-07-24 08:06:22 +02:00
Johnny Lim 8f8b0b493e Remove println invocations in tests
See gh-17592
2019-07-21 18:26:26 +02:00
Andy Wilkinson 41957ec2ad Polish "Polish OutputCapture and its JUnit Jupiter extension"
See gh-17049
2019-07-18 17:46:56 +01:00
Stephane Nicoll 4ce9c6edb3 Polish "Make layout parameter available as a user property"
See gh-17277
2019-07-18 18:20:06 +02:00
Marc Rohlfs d2e34e6b07 Make layout parameter available as a user property
This commit allows the layout parameter of the Maven repackage goal to
be set from the command line.

See gh-17277
2019-07-18 18:20:06 +02:00
dreis2211 2038fac825 Remove testsupport.assertj package
See gh-17557
2019-07-18 14:20:28 +02:00
Phillip Webb a9ba7080ce Merge branch '2.1.x' 2019-07-17 21:48:42 +01:00
Phillip Webb 30b5ba87ae Merge branch '2.0.x' into 2.1.x 2019-07-17 21:48:01 +01:00
Phillip Webb 74d00354f5 Refine BuildInfoMojo time property
Update `BuildInfoMojo` so that the time property now defaults to
`${session.request.startTime}` rather than the time the Mojo was
created. Also update javadoc to make it clear that any supplied
value will be passed to `Instant.parse`.

See gh-17390
2019-07-16 13:51:03 +01:00
dreis2211 4ec035977b Polish testsupport.junit.platform package
See gh-17524
2019-07-15 21:35:25 +01:00
Phillip Webb eff1147ccc Rename classpath runner package
Remove `runner` since we're no longer tied to JUnit 4.

See gh-17491
2019-07-15 13:40:26 +01:00
Phillip Webb 1117fdb2b3 Make ModifiedClassPathExtension package private
Meta-annotate `ClassPathExclusions` and `ClassPathOverrides` with
so that the `ModifiedClassPathExtension` no longer needs to be
used directly.

See gh-17491
2019-07-15 13:38:26 +01:00
Phillip Webb b6ec1332a0 Polish ModifiedClassPathClassLoader
Remove the `ModifiedClassPathClassLoaderFactory` in favor of
factory methods on `ModifiedClassPathClassLoader`.

See gh-17491
2019-07-15 13:37:34 +01:00
Phillip Webb 4fe5e9e31e Remove direct junit-platform-launcher dependency
Replace any direct `junit-platform-launcher` dependencies and instead
rely on the test runner providing it. Launcher related class are not
handled via reflection.

This update allows us to workaround SUREFIRE-1679.

Closes gh-17517
2019-07-15 13:35:08 +01:00
Phillip Webb 543fcdbbfd Delete internal OutputCaptureRule
Delete our internal `OutputCaptureRule` since we not longer have any
tests using it.
2019-07-15 00:36:13 +01:00
Phillip Webb 13b39cbbbf Delete ModifiedClassPathRunner
Delete `ModifiedClassPathRunner` since we no longer have any tests
that use it.

See gh-17491
2019-07-15 00:33:00 +01:00
Phillip Webb bd81bb90eb Polish ModifiedClassPath support
See gh-17491
2019-07-15 00:32:34 +01:00
dreis2211 2a4c48cb91 Add JUnit 5 ModifiedClassPathExtension
Add a JUnit 5 extension that allows tests to be run with a
modified classpath. Since JUnit 5 does not currently offer a way
to run tests with a different classpath, we instead fake the
original invocation and launch an entirely new run for each
method.

See gh-17491
2019-07-15 00:28:53 +01:00
dreis2211 90d824f6cb Extract ModifiedClassPathClass logic
Extract classes from `ModifiedClassPathRunner` so that they can
be reused.

See gh-17491
2019-07-15 00:27:42 +01:00
Phillip Webb 01933f9b06 Merge previously split strings
Merge some string lines that were previously split because of the
90 chars wide formatting.
2019-07-15 00:24:19 +01:00
Phillip Webb c3816bfe7b Polish output capture names 2019-07-15 00:24:18 +01:00
Phillip Webb cdf43a7489 Polish 2019-07-14 19:42:56 +01:00
Phillip Webb 8d4a2add63 Allow OutputCaptureRule to be used with AssertJ
Update `OutputCaptureRule` so that it now implements
`CapturedOutput` and can be used directly with AssertJ.

Closes gh-17512
2019-07-14 19:42:42 +01:00
Stephane Nicoll 79b29396d0 Merge branch '2.1.x'
Closes gh-17506
2019-07-14 13:14:21 +02:00
dreis2211 e9203a280c Test the Gradle Plugin against Gradle 5.5.1
See gh-17496
2019-07-14 13:13:17 +02:00
Dmytro Nosan 8dd9c6baa1 Allow build.time to be disabled so BuildInfoMojo's output is repeatable
See gh-17390
2019-07-10 13:40:17 +01:00
dreis2211 32549cfc85 Remove folder that only contains package-info
See gh-17471
2019-07-10 06:24:40 +01:00
Andreas Gebhardt ed7cfedb51 Fix JavaDoc within spring-boot-test-support
See gh-17443
2019-07-08 12:48:02 +01:00
Andy Wilkinson bd22ca0268 Polish 2019-07-04 19:36:32 +01:00
Andy Wilkinson 2816635418 Polish 2019-07-04 17:51:20 +01:00
Andy Wilkinson 4b2a116fa7 Use String indexOf(char) and lastIndexOf(char) where possible
Closes gh-11416
2019-07-04 17:44:40 +01:00
Andy Wilkinson aa01bd3890 Polish "Polish GradleCompatibilityExtension's javadoc"
See gh-17411
2019-07-04 10:18:18 +01:00
dreis2211 dc4cc214fe Polish GradleCompatibilityExtension's javadoc
See gh-17411
2019-07-04 10:13:17 +01:00
Andy Wilkinson 9d5fa98334 Merge branch '2.1.x'
Closes gh-17429
2019-07-04 10:07:40 +01:00
Andy Wilkinson 7553b60e68 Test the Gradle Plugin against Gradle 5.5
Closes gh-17428
2019-07-04 10:05:57 +01:00
Phillip Webb a66c4d3096 Unify method visibility of private classes
Apply checkstyle rule to ensure that private and package private
classes do not have unnecessary public methods. Test classes have
also been unified as much as possible to use default scoped
inner-classes.

Closes gh-7316
2019-07-03 11:39:47 -07:00
Andy Wilkinson 6791dbb786 Merge branch '2.1.x'
Closes gh-17381
2019-07-01 15:47:48 +01:00
Andy Wilkinson 4083c721f2 Fix URL normalization when replacing /./ with /
Previously, a regular expression of /./ was used to replace /./ with
/.  The '.'' in the expression matches any single character so the
replacement was more broadly applicable than it should have been. For
example, /a/ would be replaced with /.

This commit uses Pattern.LITERAL to compile the regular expression
from the CURRENT_DIR (/./) contant. This allows the constant to be
used to check for occurances of /./ in the string before attempting
replacement, while also ensuring that the '.' is treated literally.

Closes gh-17341
2019-07-01 15:42:54 +01:00
Andy Wilkinson 1fa48882bb Merge branch '2.1.x'
See gh-17362
2019-06-29 20:39:19 +01:00
Andy Wilkinson f4e7b80651 Merge branch '2.0.x' into 2.1.x
See gh-17361
2019-06-29 20:38:18 +01:00
Andy Wilkinson 761856ac70 Merge branch '1.5.x' into 2.0.x 2019-06-29 20:29:16 +01:00
Phillip Webb 605599138e Merge branch '2.1.x' 2019-06-28 23:56:02 -07:00
Phillip Webb 92bff3c328 Merge branch '2.0.x' into 2.1.x 2019-06-28 23:42:28 -07:00
Phillip Webb cfeb0239b7 Merge branch '1.5.x' into 2.0.x 2019-06-28 23:28:34 -07:00
Madhura Bhave 7e22901bb2 Fail build on unresolved documentation links
Closes gh-12005
2019-06-28 12:04:30 -07:00
Andy Wilkinson 66f1344f7c Merge branch '2.1.x'
Closes gh-17335
Closes gh-17292
2019-06-27 12:00:34 +01:00
Andy Wilkinson 91786bc712 Merge branch '2.0.x' into 2.1.x
Closes gh-17334
2019-06-27 11:39:17 +01:00
Andy Wilkinson 256a0d636d Merge branch '1.5.x' into 2.0.x 2019-06-27 11:39:02 +01:00
Andy Wilkinson 361a9404fd Merge branch '2.1.x'
Closes gh-17321
2019-06-26 17:40:44 +01:00
Andy Wilkinson 3fb06ee29e Merge branch '2.0.x' into 2.1.x
Closes gh-17320
2019-06-26 17:39:13 +01:00
Andy Wilkinson 4973a2b217 Merge branch '1.5.x' into 2.0.x 2019-06-26 17:37:39 +01:00
Stephane Nicoll e560b7f6ba Remove public modifier on JUnit5 lifecycle methods
See gh-17292
2019-06-21 18:09:05 +02:00
Andy Wilkinson 6d8ba654cc Merge branch '2.1.x'
Closes gh-17276
2019-06-20 11:17:37 +01:00
Andy Wilkinson a5ae1de706 Fix spring-boot-loader's tests on Windows
Closes gh-17275
2019-06-20 11:08:35 +01:00
Phillip Webb 1e0cf960f0 Reinstate single page HTML and PDF docs
Closes gh-16854
2019-06-17 20:44:01 -07:00
Phillip Webb 2c2b962204 Merge branch '2.1.x'
Closes gh-17232
2019-06-17 15:54:51 -07:00
Phillip Webb d82ccf1405 Ensure META-INF/MANIFEST.MF remains as first entry
Update Gradle archive tasks to ensure that `META-INF/` and
`META-INF/MANIFEST.MF` remain as the first entries of the archive.

Prior to this commit, rewritten archives would violate the implicit
specification of `JarInputStream` that these entries should be first.

Fixes gh-16698
2019-06-17 15:48:14 -07:00
Andy Wilkinson f36af7b16d Polish 2019-06-17 11:02:54 +01:00
Andy Wilkinson ece8703278 Merge branch '2.1.x'
Closes gh-17211
2019-06-17 10:36:46 +01:00
Andy Wilkinson 7d59b78829 Fix handling of jar files with + chars in their path
Closes gh-17208
2019-06-17 10:31:51 +01:00
Johnny Lim 368c0eebe4 Fix typo
See gh-17132
2019-06-16 11:42:00 +02:00
gaurav bhatnagar 1ec5fb9972 Drop deprecated 'spring.version' POM property
See gh-17043
2019-06-13 08:59:00 -07:00
Madhura Bhave 30cfe7b4c5 Polish 2019-06-13 08:02:26 -07:00
Andy Wilkinson cffc870fd6 Fix test failures on Windows
Since the move to JUnit 5, a number of tests were failing on Windows.
The majority were failing due to open file handles preventing the
clean up of the tests' temporary directory. This commit addresses
these failures by updating the tests to close JarFiles, InputStreams,
OutputStreams etc.

A change has also been made to CachingOperationInvokerTests to make
a flakey test more robust. Due to System.currentTimeMillis() being
less precise on Windows than it is on *nix platforms, the test could
fail as it would not sleep for long enough for the TTL period to have
expired.
2019-06-13 09:24:31 +01:00
Andy Wilkinson c56fbf8c3d Allow Archives to be closed so they can release resources
Closes gh-17126
2019-06-13 09:22:54 +01:00
Andy Wilkinson 048be1813e Ensure JarFile created for nested entry InputStream is closed
Closes gh-17127
2019-06-12 14:22:17 +01:00
Andy Wilkinson 29d1cd3b2d Merge branch '2.1.x'
Closes gh-17124
2019-06-12 13:01:40 +01:00
Andy Wilkinson c12ccfb342 Close JarFile if failure occurs during construction
Fixes gh-17123
2019-06-12 12:59:14 +01:00
Andy Wilkinson 405b4ad441 Merge branch '2.1.x'
Closes gh-17118
2019-06-12 12:28:19 +01:00
Andy Wilkinson 2833f60344 Avoid leaving streams open when writing libraries
Fixes gh-17115
2019-06-12 12:28:07 +01:00
Phillip Webb b3d5cd538d Add JUnit 5 checkstyle rules
Add a rule to enforce JUnit 5 usage and conventions.

Closes gh-17093
2019-06-10 16:16:45 -07:00
Phillip Webb 266d6334b2 Fix checkstyle RedundantModifier test violations 2019-06-07 20:46:33 -07:00
Andy Wilkinson b18fffaf14 Move tests to JUnit 5 wherever possible 2019-06-07 12:25:54 +01:00
Andy Wilkinson aef92b9295 Merge branch '2.1.x'
Closes gh-17079
2019-06-07 11:00:44 +01:00
Andy Wilkinson 24925c3dae Merge branch '2.0.x' into 2.1.x
Closes gh-17078
2019-06-07 10:50:34 +01:00
Andy Wilkinson c6c139d980 Merge branch '1.5.x' into 2.0.x 2019-06-07 10:46:31 +01:00
Phillip Webb db75347eb6 Merge branch '2.1.x' 2019-06-04 14:41:20 -07:00
Phillip Webb 0ef331018e Merge branch '2.0.x' into 2.1.x 2019-06-04 14:30:52 -07:00
Phillip Webb d306b31ce9 Merge branch '2.1.x' 2019-06-04 02:08:00 -07:00
Phillip Webb ccfbd03482 Merge branch '2.0.x' into 2.1.x 2019-06-04 02:07:14 -07:00
Phillip Webb b442d3b906 Merge branch '1.5.x' into 2.0.x 2019-06-04 01:49:03 -07:00
Phillip Webb 5fba43aa31 Merge branch '1.5.x' into 2.0.x 2019-06-04 00:05:57 -07:00
Brian Clozel c74badd4f2 Auto-configure Elasticsearch REST client in Spring Data
This commit auto-configures the Elasticsearch REST client support
as a template for Spring Data Elasticsearch. As of this commit,
using the transport client is still possible but developers
should migrate.

This commit also removes the deprecated annotation on the
Elasticsearch auto-configuration for the transport client, since
this deprecation notice is already present on the configuration
property.

Closes gh-17024
Closes gh-16542
2019-06-03 21:20:06 +02:00
Stephane Nicoll 8beb6c1bcb Document how to specify arguments on the command line with Maven
Closes gh-10926
2019-06-03 11:37:36 +02:00
Phillip Webb ad5e905bd7 Update copyright header of changed files 2019-05-30 11:30:43 -07:00
Phillip Webb 68aec8b6ee Polish 2019-05-30 11:30:27 -07:00
Andy Wilkinson ecf7c817a6 Build and test the Gradle plugin with Java 11 and 12
Closes gh-12333
2019-05-29 07:20:34 +01:00
Phillip Webb 988f02d766 Merge branch '2.1.x'
Closes gh-16996
2019-05-28 16:46:09 -07:00
Phillip Webb f380ba63eb Exclude Groovy MetaClass from property meta-data
Update `TypeExcludeFilter` to exclude `groovy.lang.MetaClass`.

Closes gh-16981
2019-05-28 16:42:42 -07:00
dreis2211 e59d734098 Fix Gradle plugin code formatting
See gh-16984
2019-05-28 18:10:04 +01:00
Andy Wilkinson c80218064f Use sorted properties to make build info output repeatable
Closes gh-14494
2019-05-28 16:30:36 +01:00
Stephane Nicoll 4cdb5a8ecb Polish "Default to optimized launch of the JVM when using spring-boot:run"
Closes gh-16941
2019-05-25 12:22:00 +02:00
Dos Debug 569b850fe0 Default to optimized launch of the JVM when using spring-boot:run
See gh-16941
2019-05-25 12:21:37 +02:00
Andy Wilkinson 54b123028c Default to optimized launch of the JVM when using Gradle's bootRun
Closes gh-16222
2019-05-25 09:29:52 +01:00
Andy Wilkinson 7713a7f33a Fix inclusion of Gradle DSL snippets in plugin reference docs
Closes gh-16968
2019-05-25 09:21:10 +01:00
Andy Wilkinson bf670d0a5a Merge branch '2.1.x'
Closes gh-16960
2019-05-24 20:50:20 +01:00
Andy Wilkinson 60d60a8304 Use basedir as forked JVM's working directory in Maven plugin
Fixes gh-16811
2019-05-24 20:49:03 +01:00
Andy Wilkinson babb94c791 Migrate spring-boot-gradle-plugin's tests to JUnit 5
Closes gh-16959
2019-05-24 20:17:34 +01:00
Stephane Nicoll a5537bd2e1 Fork application process with Maven by default
Closes gh-16945
2019-05-23 14:40:51 +02:00
Andy Wilkinson 23f803c6b6 Upgrade to Hamcrest 2.1, switch to hamcrest artifact from -core and -library
Closes gh-15555
2019-05-22 14:50:15 +01:00
Andy Wilkinson 64860e196c Improve diagnostics when forked JVM exits with non-zero status
Closes gh-16869
2019-05-20 16:04:32 +01:00
Stephane Nicoll 66dc728018 Polish "Make excludeDevtools available as a user property"
Closes gh-16701
2019-05-20 10:38:15 +02:00
jvwilge dcc09ffac2 Make excludeDevtools available as a user property
See gh-16701
2019-05-20 10:37:40 +02:00
Johnny Lim 87874ffb70 Polish
Closes gh-16875
2019-05-19 14:38:38 +02:00
Phillip Webb 3a9ca5fa30 Update copyright header of changed files 2019-05-14 21:05:53 -07:00
Stephane Nicoll 6544d19fbf Merge branch '2.1.x' 2019-05-13 11:15:57 +02:00
Stephane Nicoll 4c1ef630c9 Restore lazy evaluation of project/build/finalName
This commit restores the read-only `finalName` so that its value can
be lazily resolved against `${project.build.finalName}`.

While doing the evaluation ourselves and not relying on a dedicated
field at all would have been better, the evaluation increased the
number of required dependencies for no good reason.

IDEs should not offer auto-completion for that read-only field and it
is not published in the generated site either.

Closes gh-16456
2019-05-13 11:14:21 +02:00
Madhura Bhave 684a1c7a3c Migrate tests to JUnit5 testcontainer extensions
Closes gh-15456
2019-05-08 16:05:44 +02:00
Andy Wilkinson f35b91a172 Raise minimum supported version of Gradle to 4.10 and encourage use of 5.x
Closes gh-16681
2019-05-03 13:07:15 +01:00
Andy Wilkinson 538030b57e Merge branch '2.1.x'
Closes gh-16693
2019-05-01 11:20:56 +01:00
Andy Wilkinson 881fbeff43 Test the Gradle Plugin against Gradle 5.4.1
Closes gh-16576
2019-05-01 10:47:35 +01:00
Brian Clozel c4938055b4 Polish "Separate compound properties in appendices"
Closes gh-16480
2019-04-30 15:32:26 +02:00
dreis2211 5b63b807ad Separate compound properties in appendices 2019-04-30 15:25:39 +02:00
Andy Wilkinson 5639685770 Polish "Prefer file: to jar:file: URLs in launcher"
See gh-16248
2019-04-29 14:41:03 +01:00
hengyunabc c1b34d0307 Prefer file: to jar:file: URLs in launcher
See gh-16248
2019-04-29 14:39:20 +01:00
Phillip Webb 17aaf26590 Use consistent javadoc style for annotation links
Closes gh-13920
2019-04-24 19:37:59 -07:00
Phillip Webb 1e44aba772 Fix compiler warnings and polish
Fix various compiler warnings and apply a little polish.
2019-04-24 19:37:42 -07:00
Andy Wilkinson eb0b852e99 Merge branch '2.1.x'
Closes gh-16639
2019-04-24 10:47:08 +01:00
Andy Wilkinson 5d77b48aed Polish "Polish Maven Plugin's tests"
See gh-16618
2019-04-24 10:40:13 +01:00
daonan.zhan 52c2c534db Polish Maven Plugin's tests
See gh-16618
2019-04-24 10:40:05 +01:00
dreis2211 f40b086ef5 Optimize JarEntry construction
This commit avoids calling the underlying ZipEntry.setExtra() method
that is not very inline friendly in cases where there is no extra
information to be set.

See gh-16620
2019-04-23 15:25:56 +01:00
Phillip Webb b879972d0d Migrate to MergedAnnotations API
Migrate away from `AnnotationUtils` and `AnnotatedElementUtils`
when possible to the new `MergedAnnotations` API.

Closes gh-16551
2019-04-18 15:40:02 -07:00
Stephane Nicoll a79e49f1dd Merge branch '2.1.x' 2019-04-17 11:57:32 +02:00
Johnny Lim 363994515b Polish
See gh-16575
2019-04-17 11:56:31 +02:00
Andy Wilkinson 7d2a99943f Merge branch '2.1.x' 2019-04-17 09:26:28 +01:00
Andy Wilkinson dfbc787737 Test the Gradle plugin against Gradle 5.4
Closes gh-16576
2019-04-17 09:25:28 +01:00
Phillip Webb 2dfd916c96 Polish 2019-04-15 17:51:08 -07:00
Stephane Nicoll f9c74d983f Merge branch '2.1.x'
Closes gh-16565
2019-04-15 16:18:22 +02:00
Stephane Nicoll e99deb95f7 Fix source detection in case of multiple candidates
This commit improves the detection of a property source when more than
one group with the same type exist.

Closes gh-16549
2019-04-15 16:17:11 +02:00
Andy Wilkinson 9d1f584560 Adapt Gradle plugin tests to change in Kotlin's packaging
Closes gh-16554
2019-04-15 12:36:58 +01:00
Stephane Nicoll 0972ef3422 Merge branch '2.1.x'
Closes gh-16451
2019-04-04 16:00:34 +02:00
Stephane Nicoll fbb5ffe0a4 Avoid infinite cycle resolving generic type that refers itself
This commit improves type resolution for a unresolved generic type that
uses itself in its upper bound declaration.

Closes gh-16451
2019-04-04 15:55:55 +02:00
Stephane Nicoll 763c1a99e0 Polish 2019-04-04 11:01:10 +02:00
Phillip Webb 52e635b823 Merge branch '2.1.x' 2019-04-02 20:50:22 -07:00
Phillip Webb 912e0a87a8 Merge branch '2.0.x' into 2.1.x 2019-04-02 20:49:44 -07:00
Phillip Webb 8c2e0a61ae Merge branch '1.5.x' into 2.0.x 2019-04-02 20:48:00 -07:00
Phillip Webb 2376f973f4 Merge branch '2.1.x' 2019-04-02 13:46:36 -07:00
Phillip Webb 47c6bf741d Merge branch '2.0.x' into 2.1.x 2019-04-02 13:40:21 -07:00
Phillip Webb 07c000c5b7 Merge branch '1.5.x' into 2.0.x 2019-04-02 13:34:28 -07:00
Stephane Nicoll c4b1a22e89 Polish "Add Spring-specific styling to Gradle Plugin's documentation"
Closes gh-16327
2019-04-02 16:49:11 +02:00
Hendrig Sellik 466b57cd44 Add Spring-specific styling to Gradle Plugin's documentation
This commit replaces the default Asciidoctor styling with
Spring specific styling.

First, we need to unzip the contents of the Spring Asciidoctor
documentation resources provided by the
`io.spring.docsresources:spring-docs-resources` distribution zip. This
is done in a `/target/refdocs` folder. We then copy all files from
`src/main/asciidoc` to the same location, and then launch the generation
process.

See gh-16327
2019-04-02 16:38:50 +02:00
Andy Wilkinson c5024f21a4 Merge branch '2.1.x' 2019-04-02 14:40:35 +01:00
Andy Wilkinson 6aa4fe579a Polish
See gh-16068
2019-04-02 14:40:18 +01:00
Andy Wilkinson ac4d6bb10f Merge branch '2.1.x' 2019-04-02 10:27:45 +01:00
Andy Wilkinson db4623c519 Merge branch '2.0.x' into 2.1.x 2019-04-02 10:27:34 +01:00
Andy Wilkinson 7b5f46d6e3 Add Spring-Boot-* manifest attributes to jars and wars built with Gradle
Closes gh-16068
2019-04-02 10:13:09 +01:00
Andy Wilkinson 2adb6b1fa4 Override version of Maven Site Plugin for JDK 9+181 compatibility
See gh-16400
2019-04-01 11:53:31 +01:00
Stephane Nicoll 17a800b577 Merge branch '2.1.x' 2019-03-29 10:51:44 +01:00
Stephane Nicoll 62d9c0a8b3 Test against Gradle 5.3.1 2019-03-29 10:51:31 +01:00
Stephane Nicoll 680e2b223b Remove deprecated finalName attribute
See gh-16202
2019-03-29 10:46:28 +01:00
Stephane Nicoll cba1e8ada0 Merge branch '2.1.x' 2019-03-29 10:41:30 +01:00
Stephane Nicoll 04aadcdf2e Make sure custom finalName is ignored
A read-only plugin parameter can still be set by the user which leads
to an invalid repackaged archive. This commit actually ignores the field
and uses the standard attribute instead.

Closes gh-16202
2019-03-29 10:40:41 +01:00
Stephane Nicoll 6ab942f295 Polish 2019-03-29 10:19:43 +01:00
Stephane Nicoll 554dec1a3e Document finalName alternative for repackage goal
Closes gh-16334
2019-03-29 10:19:14 +01:00
Spring Operator fb242c27d2 Use HTTPS for external links wherever possible
See gh-16276
2019-03-28 12:07:01 +00:00
Andy Wilkinson 878a635bfb Merge branch '2.1.x' 2019-03-28 11:48:47 +00:00
Andy Wilkinson 864942ad4f Merge branch '2.0.x' into 2.1.x 2019-03-28 09:35:53 +00:00
Andy Wilkinson ba4671f0ab Merge branch '1.5.x' into 2.0.x 2019-03-27 19:59:36 +00:00
Andy Wilkinson 4900505425 Merge branch '2.0.x' into 2.1.x 2019-03-26 13:53:57 +00:00
Andy Wilkinson fedb40a2bf Merge branch '1.5.x' into 2.0.x 2019-03-26 13:48:32 +00:00
Stephane Nicoll dec5a8cc7e Merge branch '2.1.x' 2019-03-25 16:14:10 +01:00
Stephane Nicoll 567a82f4ba Update multi release test jar to include Java 12
See gh-16212
2019-03-25 16:13:24 +01:00
Stephane Nicoll 90160b16aa Merge branch '2.1.x' 2019-03-25 10:20:52 +01:00
dreis2211 c2335e130c Test against Gradle 5.3
Closes gh-16294
2019-03-25 10:19:57 +01:00
Stephane Nicoll 3125f424ce Add metadata support for immutable ConfigurationProperties type
Closes gh-16071
2019-03-22 15:33:35 +01:00
Andy Wilkinson 36c1c051b8 Merge branch '2.1.x' 2019-03-20 16:55:10 +00:00
Andy Wilkinson e23f72c8b0 Merge branch '2.0.x' into 2.1.x 2019-03-20 16:53:48 +00:00
Andy Wilkinson 9fbd38ab3c Merge branch '1.5.x' into 2.0.x 2019-03-20 16:45:26 +00:00
Spring Operator 00ab30362c Use HTTPS for external links in XML files
See gh-16270
2019-03-20 14:33:25 +00:00
Andy Wilkinson b828b398b5 Merge branch '2.1.x' 2019-03-19 17:11:45 +00:00
Spring Operator b32c0080c3 Update build and setup configuration to use HTTPS
See gh-16247
2019-03-19 17:06:45 +00:00
Andy Wilkinson a36aa67b52 Merge branch '2.0.x' into 2.1.x 2019-03-19 17:04:41 +00:00
Spring Operator 3e2b6ac8ed Update build and setup configuration to use HTTPS
See gh-16246
2019-03-19 16:58:31 +00:00
Andy Wilkinson daba01ab94 Merge branch '2.1.x' 2019-03-19 12:37:04 +00:00
Andy Wilkinson 716b4e8acf Test the Gradle plugin against Gradle 5.3-rc-3
Closes gh-16211
2019-03-19 12:36:14 +00:00
Madhura Bhave 3d0219c315 Merge branch '2.1.x' 2019-03-15 18:09:47 -07:00
Johnny Lim c5b5f752ed Polish
Closes gh-16219
2019-03-15 17:54:48 -07:00
dreis2211 b39b990a72 Use isEmpty() where possible
Closes gh-16225
2019-03-14 09:10:48 +01:00
Andy Wilkinson 68bfb020aa Reduce need for bean method proxying and disable where not needed
Closes gh-9068
2019-03-12 13:18:42 +00:00
Andy Wilkinson 28cf63354a Merge pull request #16106 from Spring Operator
* gh-16106:
  Drop AnyEdit from Eclipse setup as it is not available over HTTPS
  Update build and setup configuration to use HTTPS

Closes gh-16106
2019-03-12 10:05:06 +00:00
Spring Operator c9c554b834 Update build and setup configuration to use HTTPS
See gh-16106
2019-03-12 10:02:44 +00:00
Phillip Webb 64a2e8d67f Update copyright year for changed files 2019-03-11 22:15:36 -07:00
Phillip Webb dd3e8154d9 Merge branch '2.1.x' 2019-03-11 22:15:19 -07:00
Phillip Webb fc3aa43cc2 Update copyright year for changed files 2019-03-11 22:14:53 -07:00
Andy Wilkinson 404f5d33f3 Align Gradle plugin's tests with Kotlin 1.3's restructuring
See gh-16195
2019-03-11 21:21:18 +00:00
Andy Wilkinson 9d06d22b99 Merge branch '2.0.x' into 2.1.x 2019-03-07 10:17:01 +00:00
Andy Wilkinson d6a869fa98 Switch to Jakarta EE API dependencies where possible
Closes gh-16113
Closes gh-16112
Closes gh-16111
Closes gh-15916
Closes gh-15689
2019-03-06 11:20:51 +00:00
Stephane Nicoll 75c248dcba Move setter attribute in PropertyDescriptor proper 2019-03-04 10:53:13 +01:00
Stephane Nicoll a90c8d01a9 Polish 2019-03-04 10:53:08 +01:00
Stephane Nicoll 00a18c32ab Restructure metadata generation
This commit restructures the annotation processor to off-load most of
its logic in a PropertyDescriptor abstraction that is consumed to
generate the relevant metadata.

This has the benefit to isolate the various way properties can be
identified (java bean and lombok for now).

Closes gh-16036
2019-02-26 10:10:33 +01:00
Stephane Nicoll 99c0b4561d Polish test to request the type under test 2019-02-23 09:30:15 +01:00
Stephane Nicoll c44a1e129d Polish 2019-02-22 14:04:37 +01:00
Stephane Nicoll 8a064b0da2 Move main test annotation processor to test package 2019-02-22 14:04:29 +01:00
Stephane Nicoll 4bee913fb2 Add shared test processor
This commit adds a simple annotation processor that can be used to run
more fine grained assertions.
2019-02-22 14:04:22 +01:00
Andy Wilkinson 0f0adb4cd0 Polish formatting 2019-02-21 22:04:56 +00:00
Stephane Nicoll 8773a2fed3 Polish 2019-02-21 11:37:11 +01:00
Andy Wilkinson f2e3e274a8 Merge branch '2.1.x' 2019-02-21 08:19:43 +00:00
Andy Wilkinson 53326695ea Polish 2019-02-21 08:13:54 +00:00
Andy Wilkinson f4bd0b8b4b Merge branch '2.1.x' 2019-02-20 18:18:06 +00:00
Andy Wilkinson 59430a2642 Only include zips in BOOT-INF/lib, WEB-INF/lib, and WEB-INF/lib-provided
Closes gh-16001
2019-02-20 18:15:27 +00:00
Andy Wilkinson 43c9a789ac Merge branch '2.1.x' 2019-02-20 17:28:39 +00:00
Andy Wilkinson 55fe26b075 Polish "Use kotlin_module not kotlin-module to identify Kotlin module metadata"
See gh-16004
2019-02-20 17:19:03 +00:00
Robert Thornton cb6362df82 Use kotlin_module not kotlin-module to identify Kotlin module metadata
See gh-16004
2019-02-20 17:19:03 +00:00
Stephane Nicoll 34f28b4cbd Merge branch '2.1.x' 2019-02-20 13:25:01 +01:00
Stephane Nicoll 91a005f578 Resolve generic types in generated metadata
Closes gh-15850
2019-02-20 13:24:40 +01:00
Andy Wilkinson 9540905e73 Merge branch '2.1.x' 2019-02-18 17:30:02 +00:00
Andy Wilkinson 68e3de0357 Use name from header not alias when checking entry has expected name
Previously, an entry’s potentially aliased name would be used when
checking that it has a particular name. The alias would always be
applied, irrespective of the name in the header. As a result, when
there was a clashing hash and an entry with a particular index did
not have the expected name, this would be concealed by the alias
being applied and the name check being done with the alias.

This commit reworks JarEntry to store the name in its header in
addition to its alias, if any. When checking that the entry has the
expected name, the unaliased name is passed in and the entry compares
it with the name from the header rather than the alias.

Closes gh-15981
2019-02-18 17:29:25 +00:00
Brian Clozel 2a2bfb9915 Auto-generate the "Common application properties"
Prior to this commit, the application properties listed in the reference
documentation would be manually managed and updated.

This commit adds a new `spring-boot-configuration-docs` project that
extracts that information from the available JSON metadata and writes
Asciidoctor tables ready for inclusion in the reference documentation.

The `generateConfigurationPropertyTables.groovy` is using this library
and configures the sections and how namespaces should be organized.

Fixes gh-8237
2019-02-18 15:46:15 +01:00
Madhura Bhave 9bc9639954 Merge branch '2.1.x' 2019-02-14 21:54:37 -08:00
Madhura Bhave 012a956454 Fix typo in doc 2019-02-14 19:39:01 -08:00
Andy Wilkinson 747e419db1 Merge branch '2.1.x' 2019-02-13 17:45:45 +00:00
Andy Wilkinson 9fb0b97f96 Decorate test containers so tests are skipped without Docker
Closes gh-15901
Closes gh-15638
2019-02-13 17:44:45 +00:00
Andy Wilkinson 0adea5a905 Merge branch '2.1.x' 2019-02-12 16:42:15 +00:00
Andy Wilkinson 948bafa4d8 Repackage kotlin-module metadata beneath BOOT-INF/classes
Closes gh-15890
2019-02-12 16:41:15 +00:00
Andy Wilkinson db31e42751 Merge branch '2.1.x' 2019-02-12 09:58:21 +00:00
Andy Wilkinson a975c0ad16 Use Testcontainers’ CassandraContainer rather than our own
Closes gh-15901
2019-02-12 09:58:05 +00:00
Andy Wilkinson 7e51e1a076 Merge branch '2.1.x' 2019-02-12 09:26:59 +00:00
Michael Simons 316126e8f0 Replace custom Neo4j container with Testcontainers version
See gh-15638
2019-02-12 09:24:44 +00:00
Andy Wilkinson 2cda30988e Merge branch '2.1.x' 2019-02-11 16:00:55 +00:00
Andy Wilkinson 6fe9e3a0e1 Test the Gradle plugin against Gradle 5.2.1
Closes gh-15892
2019-02-11 15:51:14 +00:00
Andy Wilkinson 4faa0f51b7 Polish "Test the Gradle plugin against Gradle 4.10.3 and 5.1.1"
Closes gh-15791
2019-02-11 15:49:59 +00:00
dreis2211 1de372d896 Test the Gradle plugin against Gradle 4.10.3 and 5.1.1
See gh-15791
2019-02-11 15:35:06 +00:00
Andy Wilkinson b3abd25e22 Merge branch '2.1.x' 2019-02-05 11:11:07 +00:00
Andy Wilkinson 8a7958ef55 Do not use reflection to fall back to JDKs jar URLStreamHandler
Closes gh-15844
2019-02-05 10:59:32 +00:00
Andy Wilkinson 342bced125 Merge branch '2.1.x' 2019-02-01 13:48:02 +00:00
Andy Wilkinson 2650a07dc9 Leave module-info.class in root of archive when repackaging
Closes gh-15810
2019-02-01 13:47:42 +00:00
dreis2211 d4ab101223 Use Assertions.contentOf() where possible
Closes gh-15793
2019-01-28 10:08:57 +01:00
Stephane Nicoll 6baa6b291e Polish contribution
Closes gh-15695
2019-01-14 08:11:20 -05:00
Johnny Lim af3ed9ff9f Polish
See gh-15695
2019-01-14 08:09:32 -05:00
Stephane Nicoll 8d1d3fb087 Polish "Avoid string concatenation inside StringBuilder append()"
Closes gh-15589
2019-01-11 08:30:12 +01:00
igor-suhorukov 59ac85d371 Avoid string concatenation inside StringBuilder append()
See gh-15589
2019-01-11 08:28:19 +01:00
dreis2211 46e59503ec Use JSONObject.putOpt in JsonConverter
Closes gh-15595
2019-01-02 09:48:35 +01:00
Stephane Nicoll 51936e1a5c Rename "agent" to "agents" to properly indicate its type
Closes gh-15455
2018-12-31 09:50:35 +01:00
igor-suhorukov 3eb2f5e476 Replace Collections sort with list sort() method
Closes gh-15585
2018-12-30 09:52:05 +01:00
Stephane Nicoll 1223355fe6 Polish "Simplify code by using for-each loop"
Closes gh-15563
2018-12-25 09:59:41 +01:00
igor-suhorukov dfb3cd51bc Simplify code by using for-each loop
See gh-15563
2018-12-25 09:58:42 +01:00
Stephane Nicoll fbef9700bf Merge branch '2.1.x' 2018-12-24 16:39:47 +01:00
Erik Mulder 00763af335 Fix system properties override example
Closes gh-15562
2018-12-24 16:39:20 +01:00
igor-suhorukov b370b1f03a Replace indexOf() with a call to the contains()
See gh-15559
2018-12-24 09:52:15 +01:00
Andy Wilkinson 372b6605b3 Merge branch '2.1.x' 2018-12-21 15:32:31 +00:00
Andy Wilkinson 83ce5dcee8 Add missing task output annotations to BootJar and BootWar
Closes gh-15488
2018-12-21 15:32:04 +00:00
igor-suhorukov cbf6b330ba Simplify code by using Map computeIfAbsent
Closes gh-15543
2018-12-21 11:12:56 +01:00
Stephane Nicoll c948bdd14d Merge branch '2.1.x' 2018-12-20 17:59:46 +01:00
Stephane Nicoll 51d3626c3b Merge branch '2.0.x' into 2.1.x 2018-12-20 17:59:33 +01:00
dreis2211 27e89bbb8a Optimize StringSequence
Closes gh-15473
2018-12-20 17:55:30 +01:00
Andy Wilkinson 0ad72d5b5e Remove reliance on mavenLocal from Gradle plugin’s tests
See gh-15471
2018-12-18 11:41:51 +00:00
Andy Wilkinson 4edc32844a Remove use of execute method inherited from internal class
Closes gh-15484
2018-12-17 17:33:20 +00:00
Stephane Nicoll 317c4c2c38 Merge branch '2.1.x' 2018-12-17 18:26:56 +01:00
Stephane Nicoll 7dbe70dc61 Merge branch '2.0.x' into 2.1.x 2018-12-17 18:26:36 +01:00
Stephane Nicoll c0b07a9429 Polish "Fix StringSequence.equals() for different lengths"
Closes gh-15465
2018-12-17 18:24:08 +01:00
dreis2211 2a0680c2ba Fix StringSequence.equals() for different lengths
See gh-15465
2018-12-17 18:20:09 +01:00
Andy Wilkinson ddabfe3fcc Deploy spring-boot-test-support so it's available downstream
Concourse builds spring-boot-tests separately from spring-boot-project
and relies on modules from the latter being available in the
distribution repository when building the former. This commit enables the
deployment of spring-boot-test-support from spring-boot-project so that it
is added to the distribution repository and is therefore available when
building spring-boot-tests. It is then excluded when putting to the
Artifactory resource as we do not want it to be published.

See gh-15471
2018-12-14 19:50:23 +00:00
Andy Wilkinson 61d04db0d7 Minimize and centralize assumptions about build output
Closes gh-15471
2018-12-14 17:50:20 +00:00
Andy Wilkinson 62fbf48446 Start Elasticsearch with single-node discovery type
See gh-15441
2018-12-12 21:02:28 +00:00
Andy Wilkinson 47fc35105d Allow more time for the Elasticsearch container to start
See gh-15441
2018-12-12 19:41:30 +00:00
Andy Wilkinson 2b453bbb16 Minimise dependencies on Log4j2
Closes gh-15441
2018-12-12 08:19:34 +00:00
Andy Wilkinson bbf0932f0f Exclude jcl-over-slf4j in favour of spring-jcl
Closes gh-15392
2018-12-07 15:37:24 +00:00
Stephane Nicoll ef40241bf6 Merge branch '2.0.x' into 2.1.x 2018-12-05 15:56:04 +01:00
dreis2211 d864b427eb Remove unused ByteArrayStartsWith matcher
Closes gh-15386
2018-12-05 15:52:42 +01:00
Andy Wilkinson 72ad0cc6be Merge branch '2.0.x' into 2.1.x 2018-12-03 12:15:36 +00:00
Andy Wilkinson 3fd0380359 Correct optional dependency declarations in spring-boot-test-support
Closes gh-15371
2018-12-03 12:14:18 +00:00
Phillip Webb ed9468a31a Update copyright year for changed files 2018-11-29 22:02:45 -08:00
Stephane Nicoll bf88a7e466 Be more lenient when repackage is invoked several times
This commit makes the repackager more lenient when it is invoked several
times in the same lifecycle.

Closes gh-15034
2018-11-27 15:09:55 +01:00
Stephane Nicoll d7fe3c73a3 Provide better logging for RepackageMojo
Closes gh-15294
2018-11-27 15:06:51 +01:00
Andy Wilkinson a0d0ecf9d4 Test the Gradle plugin against Gradle 5.0
Closes gh-15171
2018-11-26 16:02:54 +00:00
Andy Wilkinson 7790876575 Merge branch '2.0.x' 2018-11-23 14:01:12 +00:00
Andy Wilkinson c0e286b96b Test the Gradle Plugin against Gradle 5.0-rc-3
Closes gh-15171
2018-11-23 13:47:19 +00:00
Andy Wilkinson ce0a3d0311 Add missing classpath setters to BootJar and BootWar
Closes gh-15087
2018-11-23 13:46:56 +00:00
Andy Wilkinson 3fac0f0360 Polish multi-release jar support to avoid possible StackOverflowError
See gh-12523
2018-11-20 17:26:28 +00:00
Andy Wilkinson 56eebc9385 Update fat jar loader to support multi-release jar files
Closes gh-12523
2018-11-20 15:22:30 +00:00
Andy Wilkinson fe9d9ec4e2 Test the Gradle plugin against Gradle 5.0-rc-3
Closes gh-15171
2018-11-15 10:32:34 +00:00
Phillip Webb cccf5e6d2b Merge branch '2.0.x' 2018-11-14 18:27:28 -08:00
Phillip Webb 3baf782822 Merge branch '1.5.x' into 2.0.x 2018-11-14 18:24:32 -08:00
Johnny Lim fd5aa3ebf1 Polish
See gh-15134
2018-11-11 11:03:13 +01:00
Andy Wilkinson 228e05487a Test Gradle Plugin against Gradle 5.0-rc-1
Closes gh-15028
2018-10-31 09:47:49 +00:00
Phillip Webb f3fa20b2d1 Polish 2018-10-29 14:25:45 -07:00
Andy Wilkinson 1341789819 Merge branch '2.0.x' 2018-10-29 16:39:51 +00:00
Andy Wilkinson 9ea5c58e38 Remove stale mention of module layout from Maven plugin's docs
Closes gh-14854
2018-10-29 16:38:58 +00:00
Andy Wilkinson 5ac9b972fe Test the Gradle Plugin against Gradle 5.0-milestone-1
Closes gh-15005
2018-10-29 15:15:00 +00:00
Andy Wilkinson 77f571aa45 Merge branch '2.0.x' 2018-10-29 13:12:53 +00:00
Andy Wilkinson 7eb1df1650 Test the Gradle Plugin against Gradle 4.10.2
Closes gh-15004
2018-10-29 13:11:41 +00:00
Brian Clozel cf882c9b40 Fix import error in 8376bc369 2018-10-25 12:52:25 +02:00
Brian Clozel 8376bc3697 Fix build after checkstyle imports updates
See gh-14911
2018-10-25 11:25:56 +02:00
Madhura Bhave f0004c4ade Merge branch '2.0.x' 2018-10-22 14:57:10 -07:00
dreis2211 5c0d7f4ac0 Avoid creation of unnecessary collections
Closes gh-14916
2018-10-22 14:54:39 -07:00
Andy Wilkinson 9b8ead825c Polish 2018-10-18 15:38:06 +01:00
Stephane Nicoll 2a0451c461 Merge branch '2.0.x' 2018-10-17 18:06:19 +02:00
Jack Gough 94770cc0fd Force JMX hostname to 127.0.0.1
Closes gh-14836
2018-10-17 18:05:28 +02:00
Stephane Nicoll 7c6d61ee10 Update documentation to mention execution id of repackage goal
This commit updates the documentation to reference the default execution
id of the `repackage` goal when a project uses
`spring-boot-starter-parent`.

Closes gh-14835
2018-10-15 22:51:12 +02:00
Phillip Webb 85f86243c9 Order class filter checks and exit early
Update the logic in `OnClassCondition` so that filtering exits on the
first missing class. Also refactor the implementation to save
unnecessary `Set` creation when there is just a single class to check.

The `AutoConfigureAnnotationProcessor` has also been updated to order
classes so that any starting `org.springframework` are considered last.
The assumption being that other classes are more likely to be missing.

Closes gh-12131
2018-10-10 22:02:05 -07:00
Phillip Webb 94798062ab Configure Cassandra JMX Reporting
Allow Cassandra JMX reporting to be configured via a property, and
disable it by default since it won't work with Dropwizard metrics 4.

Also update some of our own tests to explicitly disable it.

Closes gh-14778
2018-10-10 10:00:44 -07:00
Andy Wilkinson 3f1b3db25a Merge branch '2.0.x' 2018-10-08 15:07:28 +01:00
Andy Wilkinson 1f34da9025 Document application plugin's need for mainClassName to be set
Closes gh-14250
2018-10-08 15:06:37 +01:00
Phillip Webb 01b8667dd7 Update copyright year for changed files 2018-10-05 13:40:07 -07:00
Andy Wilkinson a3d2f3f594 Polish "Add Kotlin DSL examples to Gradle Plugin's documentation"
Closes gh-14585
2018-10-05 10:41:13 +01:00
jnizet 5ed6c0d1ab Add Kotlin DSL examples to Gradle Plugin's documentation
See gh-14585
2018-10-05 10:41:13 +01:00
Andy Wilkinson 8c6910cf58 Polish "Refactor Gradle plugin tests to use runner's plugin classpath"
This commit removes the need for the Kotlin plugin tests to continue
to set the plugin classpath in each test build script. This is
achieved by adding the jars files containing the Kotlin plugin and
its dependencies to the runner's plugin classpath in the same way as
was already done for the dependency management plugin.

Closes gh-14680
2018-10-04 17:27:26 +01:00
jnizet c51449585e Refactor Gradle plugin tests to use runner's plugin classpath
Previously, each test build script used a property to configure its
classpath. This commit simplifies the tests by setting the classpath
once on the GradleRunner, thereby removing the need for it to be set in
each test script. It also allows, and, in fact, requires, the use of
the plugins block to apply the Boot plugin under test.

Unfortunately, this doesn't work for the tests for the reaction to the
Kotlin plugin. See the comments in the GradleBuild class and in each
KotlingPluginActionIntegrationTests build script.

See gh-14680
2018-10-04 17:26:42 +01:00
Andy Wilkinson 76849c12e5 Merge branch '2.0.x' 2018-10-04 15:56:11 +01:00
Andy Wilkinson cf24d18139 Explicity set permissions on files in lib of Boot distribution
Previously, only the permissions for the scripts in bin/ were set. The
permissions for the files in lib/ were not explicity set, leaving them
with the same permissions as the source files in Gradle's cache. This
has proven to be a little brittle when building in certain
environments, leading to test failures. It also assumes that the
file permissions in Gradle's cache will be appropriate for entries in
a distribution archive. That may not always be a reasonable assumption
to make.

To avoid the above-described problems, this commit updates the copy
spec that's used to add files to lib/ in the archive so that each
file uses 0644 for its permissions.

Closes gh-14158
2018-10-04 15:55:48 +01:00
Andy Wilkinson 4a222cb4e5 Polish "Log a warning when using fallback for pid and log locations"
Closes gh-14519
2018-10-04 15:21:05 +01:00
Andreas Gebhardt 3f894cbeeb Log a warning when using fallback for pid and log locations
See gh-14519
2018-10-04 15:19:48 +01:00
Johnny Lim 335775892b Polish
See gh-14667
2018-10-03 13:57:18 +02:00
dreis2211 e68b9e8322 Remove unnecessary parameters for String.substring
Closes gh-14661
2018-10-03 09:34:56 +02:00
Phillip Webb d76bba5e6f Migrate from ExpectedException rule to AssertJ
Replace ExpectedException JUnit rules with AssertJ exception
assertions.

Closes gh-14336
2018-10-02 10:55:28 -07:00
Andy Wilkinson 285f6bfd5f Merge branch '2.0.x' 2018-09-27 06:59:37 -04:00
jnizet eee07a840f Move away from deprecated Gradle configurations
Closes gh-14593
2018-09-27 06:58:31 -04:00
Johnny Lim 698bbd6a9e Polish
Closes gh-14597
2018-09-26 11:45:21 -04:00
Phillip Webb 64627fa9d6 Restore Maven 3.3 compatibility
Downgrade the `spring-boot-maven-plugin` maven version to 3.3.

Closes gh-14464
2018-09-24 15:40:25 -04:00
Phillip Webb 75bde00334 Generate auto-configuration OnWebApplication data
Update the auto-configuration annotation processor to generate
properties for `@OnWebApplication`.

See gh-13328
2018-09-24 09:46:26 -04:00
Phillip Webb 586507c49a Generate auto-configuration OnBean data
Update the auto-configuration annotation processor to generate
properties for `@ConditionalOnBean` and `@ConditionalOnSingleCandidate`.

See gh-13328
2018-09-24 09:45:46 -04:00
Phillip Webb 11b1318cad Reduce GC pressure in JAR handler
Update the JAR `Hander` so that URL `startsWith` checks produce less
garbage. Comparisons are now performed first on the `path` rather than
the full `toString`. URL `toString` operations produce quite a lot of
garbage since a `StringBuilder` is always used.

In addition, we now also cache the JarFile URL toString to save repeated
calculation.

Closes gh-14561
2018-09-20 22:33:19 -07:00
Andy Wilkinson c1b864c826 Polish 2018-09-18 11:18:28 +01:00
durigon 7aaeefbc0e Use Matcher from pre-compiled Pattern rather than String for replaceAll
Closes gh-14483
2018-09-17 10:54:54 +01:00
Andy Wilkinson a2cf2cd87f Raise the minimum supported version of Gradle to 4.4
Closes gh-14418
2018-09-12 17:06:03 +01:00
Andy Wilkinson ae4e1d0372 Test the Gradle plugin against Gradle 4.10
Closes gh-14417
2018-09-12 12:57:27 +01:00
Andy Wilkinson 630e2d0b41 Correct the permissions of scripts in archives of boot distribution
Closes gh-14158
2018-09-12 12:57:27 +01:00
Phillip Webb 894e0e11d4 Switch from Aether to Maven Resolver
Replace Aether dependencies with Maven Resolver following the Eclipse
EOL announcement for Aether.

Closes gh-7627
2018-09-11 18:08:59 -07:00
Andy Wilkinson e4b9316613 Merge branch '2.0.x' 2018-09-11 20:33:40 +01:00
Andy Wilkinson 78464f999f Test the Gradle plugin against Gradle 4.10
Closes gh-14417
2018-09-11 20:33:26 +01:00
Andy Wilkinson 6041bc5bb0 Correct the permissions of scripts in archives of boot distribution
Closes gh-14158
2018-09-11 20:32:18 +01:00
Andy Wilkinson 1332fcb0ad Polish "Issue a warning from launch script when app will run as root"
Closes gh-10275
2018-09-11 12:12:43 +01:00
Oliver B. Fischer 94ebd33747 Issue a warning from launch script when app will run as root
See gh-10275
2018-09-11 12:12:05 +01:00
Stephane Nicoll 0493355241 Use deterministic order for configuration properties metadata
This commit updates the annotation processor to write metadata in a
consistent way. Groups, properties and hints are written and each item
is ordered alphabetically based on its name.

Also, deprecated items are written last.

Closes gh-14347
2018-09-08 08:20:43 +02:00
Andy Wilkinson ad4179cc43 Merge branch '2.0.x' 2018-09-06 16:38:55 +01:00
Andy Wilkinson 6c865f9b43 Polish
See gh-1176
2018-09-06 16:38:27 +01:00
Andy Wilkinson 79a964e563 Merge branch '2.0.x' 2018-09-06 13:11:50 +01:00
Andy Wilkinson 53372d5fd7 Document the use of --args to pass arguments to bootRun
Closes gh-1176
2018-09-06 13:08:40 +01:00
Phillip Webb 9d1b3a2b49 Merge branch '2.0.x' 2018-09-04 16:25:17 -07:00
Phillip Webb cafff43022 Update copyright header of changed files 2018-09-04 16:19:05 -07:00
Phillip Webb 9af6b3422f Polish 2018-09-04 16:18:47 -07:00
Andy Wilkinson 8ee4775820 Polish 2018-09-04 20:46:35 +01:00
Stephane Nicoll c0e45b7333 Adapt to Spring Framework API change 2018-09-04 14:09:57 +02:00
Phillip Webb 174f53e1cf Merge branch '2.0.x' 2018-08-30 16:02:25 -07:00
Phillip Webb 2e2f91d4a0 Merge branch '1.5.x' into 2.0.x 2018-08-30 15:59:02 -07:00
Stephane Nicoll 91af9e2ca9 Merge branch '2.0.x' 2018-08-20 10:34:03 +02:00
Stephane Nicoll d80ed27339 Fix checkstyle violation 2018-08-20 10:33:46 +02:00
Stephane Nicoll b26dedb547 Merge branch '2.0.x' 2018-08-20 10:26:21 +02:00
Stephane Nicoll eedeaa29e5 Polish "Replace loops with Arrays.setAll where possible"
Closes gh-14125
2018-08-20 10:23:16 +02:00
dreis2211 0bc66dc4a9 Replace loops with Arrays.setAll where possible
See gh-14125
2018-08-20 10:16:50 +02:00
dreis2211 a601bc863b Remove unused method in TypeUtils
Closes gh-14130
2018-08-19 15:39:39 +02:00