Commit Graph

1131 Commits (beb72ca8ee80cad14fe6a9eba27b521a154a730c)

Author SHA1 Message Date
Andy Wilkinson 456327260b Fail fast when a Zip64 jar is encountered
Previously, jars (either top-level or nested) in Zip64 format were
treated as normal jar files. This would lead to a failure later on
when an attempt was made to read an entry from the file.

This commit updates the loader to fail fast when it encounters a
Zip64 jar file. Such files are identified by the number of entries
in the central directory end record being 0xFFFF.

Closes gh-8735
8 years ago
Stephane Nicoll ff50331168 Merge branch '1.5.x' 8 years ago
Stephane Nicoll d8e90af3bf Merge branch '1.4.x' into 1.5.x 8 years ago
dreis 1266642aba Fix test assertions
Closes gh-8660
8 years ago
Andy Wilkinson 83df8e47fe Merge branch '1.5.x' 8 years ago
Andy Wilkinson e6cfb4e5fb Improve diagnostics when reading a nested jar throws a runtime exception
Previously, only IOExceptions were caught and wrapped in a new
IOException that included the name of the nested entry that was
being read.

Following this commit, any Exception is caught and wrapped so that the
problematic entry can be identified in more failure scenarios.

Closes gh-8711
8 years ago
Phillip Webb ca5e566deb Fix Configuration processor test tangle
Move `Metadata` test class to fix a package tangle in the test code.

Fixes gh-8613
8 years ago
Andy Wilkinson b35c162593 Raise the minimum supported version of Gradle to 3.4
Closes gh-7922
8 years ago
Phillip Webb d8f827d224 Cleanup and format code 8 years ago
Phillip Webb 425dbc3e52 Update copyright header for edited files 8 years ago
Spring Buildmaster d23fa24340 Next Development Version 8 years ago
Spring Buildmaster 2a83e80a9b Next Development Version 8 years ago
Andy Wilkinson 9c88ba3b90 Merge branch '1.5.x' 8 years ago
Andy Wilkinson 6673d8eebc Polish "Allow loader.path to refer to nested jars"
Closes gh-8334
Closes gh-8465
8 years ago
Dave Syer 3701cce88f Allow loader.path to refer to nested jars
Previously, each entry in loader.path could only refer to a standard
jar file. Refering to such a jar would add all of the classes in
the root of the jar to the class path.

This commit adds support for referencing a directory within a jar file
that contains one or more nested jars. For example:

$ java -jar -Dloader.path='jar:file:./lib.jar/!BOOT-INF/lib' my.jar

This will add all of the classes in all of that jars in the
BOOT-INF/lib directory of lib.jar to the class path.

See gh-8334
8 years ago
Andy Wilkinson b6e8a280fd Merge branch '1.5.x' 8 years ago
Andy Wilkinson b36c8a7c24 Polish "Tighten up PropertiesLauncher's contract"
See gh-8346
Closes gh-7221
8 years ago
Dave Syer e4c807b884 Tighten up PropertiesLauncher's contract
The main changes are:

- Switch to `loader.properties` instead of `application.properties`
- Search for `loader.properties` in `loader.home` as well as in
  the classpath
- Placeholder replacements in MANIFEST.MF (using `loader.properties`
  or system/env vars)

See gh-7221
Closes gh-8346
8 years ago
Phillip Webb 58ac67eb27 Merge branch '1.5.x' 8 years ago
Phillip Webb f1012c104a Polish 8 years ago
Stephane Nicoll 36fb0ed383 Merge branch '1.5.x' 8 years ago
Stephane Nicoll 19b4833c33 Keep order when filtering artifacts
This commit makes sure that the order of dependencies is kept when they
are filtered.

Closes gh-8397
8 years ago
Phillip Webb a4bcd20b64 Merge branch '1.5.x' 8 years ago
Phillip Webb ca1540cefe Update header copyright for changed files 8 years ago
Phillip Webb 5867cd6175 Polish 8 years ago
Phillip Webb 47fd5f4fac Merge branch '1.4.x' into 1.5.x 8 years ago
Phillip Webb 47b00c086c Polish 8 years ago
Andy Wilkinson ff9788c625 Merge branch '1.5.x' 8 years ago
Andy Wilkinson f67dd957b1 Ignore excludeDevtools on extension when it has been set on bootRepackage
Previously, bootRepackage's excludeDevtools property would be
overridden by the springBoot extension's excludeDevtools property.
This prevented devtools from being included by configuring it on the
repackaging task.

This commit corrects the logic so that the setting on the repackaging
task takes priority. It also adds some tests to verify the behaviour.

Closes gh-8308
8 years ago
Andy Wilkinson c14a550632 Merge branch '1.5.x' 8 years ago
Andy Wilkinson b931f564e6 Work around Gradle 3.3's overzealous deprecation warning
In Gradle 3.3, when an API that will be removed in 4.0 is called, a
deprecation warning is output as part of the build. Users have noticed
his warning and, quite reasonably, complained about it. Unfortunately,
avoiding the warning requires the use of an API that was introduced in
Gradle 3.x which we can't use directly as we want to remain compatible
with Gradle 2.x.

This commit introduces the use of reflection to call
ProjectDependency.getTargetConfiguration() via reflection when it's
available (Gradle 3) and ProjectDependency.getProjectConfiguration()
when it's not (Gradle 2).

Closes gh-8154
8 years ago
Spring Buildmaster 5c12500366 Next Development Version 8 years ago
Andy Wilkinson 9a7e5caea7 Merge branch '1.5.x' 8 years ago
Andy Wilkinson 20c1370107 Correct the scope of the spring-boot-test-support dependency
Closes gh-8136
8 years ago
Spring Buildmaster a2696bf873 Next Development Version 8 years ago
Andy Wilkinson 31b0e81765 Add @FunctionalInterface to remaining public and protected interfaces
See gh-6857
8 years ago
Eddú Meléndez 3d52c86a21 Annotate interfaces with @FunctionaInterface
Closes gh-6857
8 years ago
Spring Buildmaster ed1ce140c0 Next Development Version 8 years ago
Andy Wilkinson f049fea00d Merge branch '1.5.x' 8 years ago
Andy Wilkinson 6b353fb005 Move spring-boot-test-support into spring-boot-tools
Closes gh-8114
8 years ago
Phillip Webb 3d619da553 Polish 8 years ago
Andy Wilkinson bdf903896f Remove support for module layout
Closes gh-8107
8 years ago
Andy Wilkinson 3ce6d8e5b5 Merge branch '1.5.x' 8 years ago
Andy Wilkinson cd5124005b Deprecate support for module layout
Closes gh-8008
8 years ago
Stephane Nicoll 661fd848eb Merge branch '1.5.x' 8 years ago
Stephane Nicoll 505e7f75ea Polish contribution
Closes gh-8089
8 years ago
dreis d58f38f6f6 Use String.replace() with single char if possible
See gh-8089
8 years ago
Stephane Nicoll 551bfb2c60 Polish contribution
Closes gh-8103
8 years ago
Johnny Lim 32f9e90de5 Replace 'String.length() == 0' with 'String.isEmpty()'
See gh-8103
8 years ago
Stephane Nicoll d67ce78e8b Merge branch '1.5.x' 8 years ago
Johnny Lim e0de28a1f7 Polish
Closes gh-8076
8 years ago
Andy Wilkinson 2b75570680 Fix dead code warning in CentralDirectoryParserTests 8 years ago
Phillip Webb 8ffaa54e74 Merge branch '1.5.x' 8 years ago
Madhura Bhave ca435512c0 Introduce spring-boot-autoconfigure-processor
Add an annotation processor that generates properties files for certain
auto-configuration class annotations. Currently attribute values from
@AutoConfigureOrder, @AutoConfigureBefore, @AutoConfigureAfter and
@ConditionalOnClass annotations are stored.

The properties file will allow optimizations to be added in the
`spring-boot-autoconfigure` project. Primarily by removing the need
to ASM parse as many `.class` files.

See gh-7573
8 years ago
Andy Wilkinson 6d14a9dc78 Merge branch '1.5.x' 8 years ago
Andy Wilkinson 080ff49c8d Prevent AspectJ from loading aspects too early
Previously, AspectJ would find META-INF/aop.xml almost as soon as
the jar was launched, and before LaunchedURLClassLoader had been
created. This meant that AspectJ would attempt to load aspects listed
in META-INF/aop.xml but that were package in BOOT-INF/classes and,
therefore, could not be loaded.

This commit updates the Repackager so that a META-INF/aop.xml file
is moved into BOOT-INF/classes. This ensures that it isn't visible
to the app class loader so it won't be loaded to early. It will
now be loaded by LaunchedURLClassLoader which can also load the
compiled aspects that aop.xml references.

Closes gh-7587
8 years ago
Andy Wilkinson aba09cce73 Merge branch '1.5.x' 8 years ago
Alessandro Falappa ec537b307e Make start/stop run-levels configurable in INIT-INFO of launch.script
See gh-7008
Closes gh-7902
8 years ago
Andy Wilkinson 1d4cee9460 Drop support for the old spring-boot Gradle plugin ID
Closes gh-7859
8 years ago
Phillip Webb f92f019418 Don't mock package private class
See gh-7770
8 years ago
Phillip Webb 77f9bb09ca Further Polish Mockito 2 support
See gh-7770
8 years ago
Phillip Webb 6bc37c0589 Drop annotation processor spring-core dependency
Remove the spring-core dependency from the annotation processor.
(cherry-picked from 4cb7d86aec)

Fixes gh-7882
8 years ago
Stephane Nicoll c0012a4bfe Merge branch '1.5.x' 8 years ago
Stephane Nicoll c06ff7061f Revert Shade annotation processor dependencies
This commit reverts 45d5b60

See gh-7883
8 years ago
Phillip Webb 4bfecc1307 Merge branch '1.5.x' 8 years ago
Phillip Webb 45d5b60f6d Shade annotation processor dependencies
Update the annotation processor to be completely self contained. The
single required dependency is now "shaded" into the jar.

Fixes gh-7883
8 years ago
Phillip Webb cc7c2ebb87 Migrate to android-json
Migrate from `org.json:json` to the clean room Apache 2.0 licensed
version that was developed for Android.

Fixes gh-5929
8 years ago
Phillip Webb 4cb7d86aec Drop annotation processor spring-core dependency
Remove the spring-core dependency from the annotation processor.

Fixes gh-7882
8 years ago
Andy Wilkinson 4dc30938d0 Merge branch '1.5.x' 8 years ago
Andy Wilkinson 803eddf6b2 Update test to reflect quoting of STOP_WAIT_TIME in launch.script 8 years ago
Andy Wilkinson 3967c525c8 Merge branch '1.5.x' 8 years ago
Andy Wilkinson c5e7d83e2d Fix shellcheck warnings for literal { and } characters in launch.script
Closes gh-7870
8 years ago
Andy Wilkinson be71f666d2 Merge branch '1.5.x' 8 years ago
Andy Wilkinson 75cb545361 Update launch.script to use a consistent location for pid file
Closes gh-6924
8 years ago
Stephane Nicoll 506f6497c0 Merge branch '1.5.x' 8 years ago
Johnny Lim f915ae197a Polish 8 years ago
Phillip Webb f8c7890a45 Merge branch '1.5.x' 8 years ago
dreis cee576b8b2 Reduce memory footprint of AsciiBytes.hashCode
Update `AsciiBytes.hashCode(int hash, String string)` so that it no
longer copies the backing array of the string.

Closes gh-7851
8 years ago
Andy Wilkinson 6fd27566af Merge branch '1.5.x' 8 years ago
Andy Wilkinson 6ced8abb86 Update the copyright header to 2017 8 years ago
Andy Wilkinson 6b1a80ac2a Merge branch '1.5.x' 8 years ago
Andy Wilkinson dac249fb0d Replace use of Gradle API that's bean deprecated in 3.x
Closes gh-7734
8 years ago
Phillip Webb 4026fa563f Merge branch '1.5.x' 8 years ago
Phillip Webb 41b83085a6 Restore `kill -9` to launch.script force-stop
Restore the `-9` flag to the send `kill` call which was inadvertently
lost in commit a35a1022c2.

Closes gh-6223
8 years ago
Phillip Webb a90bad37bd Merge branch '1.5.x' 8 years ago
Phillip Webb a35a1022c2 Update force-stop to respect STOP_WAIT_TIME
Closes gh-6223
8 years ago
Kazuki Shimizu 40691d07f8 Add force-stop to launch.script usage
See gh-6223
Closes gh-7787
8 years ago
Phillip Webb 53f1df86a2 Merge branch '1.5.x' 8 years ago
Phillip Webb aacf5d660f Update copyright year for changed files 8 years ago
Phillip Webb 4d73f3d2e9 Merge branch '1.5.x' 8 years ago
Gaurav Rawat 509be7474d Add `force-stop` support to launch script
Update the embedded launch script to support `force-stop`.

Closes gh-6223
8 years ago
Phillip Webb 519f9c6c54 Merge branch '1.5.x' 8 years ago
Phillip Webb 8b69856fc9 Polish 8 years ago
Phillip Webb 49fa702708 Merge branch '1.5.x' 8 years ago
Phillip Webb 85504e74a6 Merge branch '1.4.x' into 1.5.x 8 years ago
Arlo O'Keeffe 3a709511c4 Notify BuildContext of changed build-info file
Update Maven plugin to inform the BuildContext when changes are made to
the `build-info` file. Prior to this commit Eclipse could continually
trigger refreshes whenever "Refresh using native hooks or polling" was
enabled and the file was written to `src/main/resources`.

Closes gh-7741
8 years ago
Stephane Nicoll 31bde8ffc9 Merge branch '1.5.x' 8 years ago
Stephane Nicoll 2fe98f8f85 Merge branch '1.4.x' into 1.5.x 8 years ago
Stephane Nicoll 022f7e86a0 Align library file naming mapping
This commit aligns the mapping from library to name to the default
behaviour of the `maven-war-plugin`. Previously, our plugin would use
the full version of the library (i.e. including build timestamp if there
is one), rather than using the `baseVersion` property.

Closes gh-7743
8 years ago
Spring Buildmaster 9057f9ae1f Next development version 8 years ago
Phillip Webb 6e02fe59f7 Merge branch '1.5.x' 8 years ago
Johnny Lim e12b4a944f Polish 8 years ago
Phillip Webb 8b47561f7e Merge branch '1.5.x' 8 years ago
Lucas Saldanha 534a9db6fd Make stop wait time in the launch script configurable
Create a parameter `STOP_WAIT_TIME` for the startup script
that configures the time in seconds to wait for a normal
shutdown. Because of #4941 we also send a shutdown half
way the countdown.

Fixes gh-7121
8 years ago
Phillip Webb 1f417997f3 Merge branch '1.5.x' 8 years ago
Phillip Webb 6121208cbb Polish formatting 8 years ago
Phillip Webb 4b9cba351b Merge branch '1.4.x' into 1.5.x 8 years ago
Phillip Webb bd74c3d327 Polish formatting 8 years ago
Andy Wilkinson 1782d778db Merge branch '1.5.x' 8 years ago
Andy Wilkinson 6fb1fb580d Upgrade to Dependency Management Plugin 1.0.0.RC1
Closes gh-7636
8 years ago
Stephane Nicoll df0a0e563c Merge branch '1.5.x' 8 years ago
Stephane Nicoll c2ca21bb63 Merge branch '1.4.x' into 1.5.x 8 years ago
Stephane Nicoll 26643ef428 Clarify how to exclude devtools with war packaging.
Closes gh-7556
8 years ago
Stephane Nicoll 1302d1b0e4 Merge branch '1.5.x' 8 years ago
Alessandro Falappa dd7d81a580 INIT INFO Required Start/Stop as embedded launch script properties
Expose the Required-Start and Require-Stop lines in the launch script
INIT INFO section as customizable embedded launch script properties.

This way one can express dependencies fron other init services by simply
changing the configuration in the build script.

Closes gh-7555
8 years ago
Stephane Nicoll a86678cc31 Merge branch '1.5.x' 8 years ago
Johnny Lim 6d1b752ffe Polish
Closes gh-7552
8 years ago
Andy Wilkinson 6eaa8d7c56 Merge branch '1.5.x' 8 years ago
Andy Wilkinson 53287eadf6 Merge branch '1.4.x' into 1.5.x 8 years ago
Andy Wilkinson 2d8344d46d Ensure that JarLauncher doesn't cause root jar to be on class path twice
Closes gh-7595
8 years ago
Phillip Webb 263d444d4e Merge branch '1.5.x' 8 years ago
Phillip Webb f6b0652369 Merge branch '1.4.x' into 1.5.x 8 years ago
Phillip Webb e430583eaf Polish 8 years ago
Andy Wilkinson 39c0f229c2 Merge branch '1.5.x' 8 years ago
Andy Wilkinson 0df03a95f0 Merge branch '1.4.x' into 1.5.x 8 years ago
Pei-Tang Huang 5a5e2db134 Quote $jarfile when creating arguments in launch script
Previously, if the pathname of fully executable contained any space
characters, the launch script would fail to locate the jar file

This commit fixes this issue by quoting the jarfile.

Closes gh-7535
8 years ago
Stephane Nicoll bd2415463c Merge branch '1.5.x' 8 years ago
Oscar Utbult 3a7969b8bb Remove redundant StringBuilder
Closes gh-7538
8 years ago
Stephane Nicoll da6360e506 Merge branch '1.5.x' 8 years ago
Stephane Nicoll e63174b93f Merge branch '1.4.x' into 1.5.x 8 years ago
Stephane Nicoll c51d836a15 Use standard file name for Maven dependencies
This commit uses standard files for libraries managed by the repackage
goal of the Maven plugin. Previously, only the name of the file was used
which could lead to duplicate libraries if the name of the target file
deviates from the default. This typically happens when the
`build.finalName` property is specified on a dependent module.

Note that the `maven-war-plugin` has an additional mechanism to customize
the file name structure of dependencies. This feature isn't supported by
the repackage goal so an explicit mention has been added in the
documentation.

Closes gh-7389
8 years ago
Stephane Nicoll 0568afc6cb Merge branch '1.5.x' 8 years ago
Johnny Lim 423f8037ce Polish
Closes gh-7530
8 years ago
Stephane Nicoll e7275b62dc Merge branch '1.5.x' 8 years ago
Oscar Utbult fabe35fdc4 Remove redundant toString() invocation
Closes gh-7527
8 years ago
Andy Wilkinson 633280d1d0 Merge branch '1.5.x' 8 years ago
Andy Wilkinson 1595286e04 Prefer @SpringBootApplication-annotated class when finding main class
Closes gh-6496
8 years ago
Stephane Nicoll 4da5245e69 Merge branch '1.5.x' 8 years ago
Stephane Nicoll f84fd19eaa Polish contribution
Closes gh-7491
8 years ago
Hrishikesh Joshi b3220985bb Detect default values defined in the parent
Closes gh-5434
8 years ago
Stephane Nicoll 9c374e7755 Merge branch '1.5.x' 8 years ago
Stephane Nicoll 06e44c71ec Merge branch '1.4.x' into 1.5.x 8 years ago
Oscar Utbult 88b83a909c Remove redundant toString() invocation
Closes gh-7510
8 years ago
Phillip Webb 450ab28163 Merge branch '1.5.x' 8 years ago
Dave Syer c6c6524b40 Support custom fat jar layouts
Allow support for custom Lyout implementations with both the Maven
and Gradle plugin. Implementations of `LayoutFactory` can now be
specified to allow customization of the layout. In addition a
layout may now implement `CustomLoaderLayout` if it wishes to
write custom loader classes.

See gh-7263
8 years ago
Phillip Webb f5b03c81f3 Rework Repacakger timeout code
Pull up common timeout code into Repackager and remove the need for
custom subclasses.

See gh-7263
8 years ago
Phillip Webb b4c3f4f504 Merge branch '1.5.x' 8 years ago
Phillip Webb 5ed00b3501 Merge branch '1.4.x' into 1.5.x 8 years ago
Phillip Webb 357d072a60 Polish 8 years ago
Stephane Nicoll e15b3e463f Fix compatibility with JDK9
Cast runtime object retrieved reflectively to their public interface
counterpart.

See gh-7226
8 years ago