Commit Graph

1063 Commits (3cee783d7b4aa3a4015df072745039c77fae2672)

Author SHA1 Message Date
Stephane Nicoll dd3f57d816 Avoid potentially mutating item metadata collection
Closes gh-13027
7 years ago
Spring Buildmaster c10aad165f Next Development Version 7 years ago
Spring Buildmaster ade4760842 Next Development Version 7 years ago
Phillip Webb 624a5f8260 Apply URL decoding for nested jar entry names
Update `JarURLConnection` to apply URL decoding to nested jar entry
names.

Fixes gh-12765
7 years ago
Stephane Nicoll 610ffed938 Merge pull request #12629 from oflebbe:1.5.x
* pr/12629:
  Polish "Use secure connection to repositories"
  Use secure connection to repositories
7 years ago
Stephane Nicoll ade6d86b65 Polish "Use secure connection to repositories"
Closes gh-12629
7 years ago
dreis2211 efc9dcc22b Fix ModifiedClassPathRunner tests if run via IDEA
IntelliJ can shorten the classpath to a single classpath.jar in order to
circumvent errors originating from a too long classpath. This breaks the
filtering inside ModifiedClassPathRunner as the classpath contains only a
single jar to match against. This can be fixed by applying a similar
mechanism already provided for Surefire manifest-only booter JARs, which
extracts the real classpath from the JAR's Manifest file.

See gh-12535
7 years ago
Phillip Webb a8f366a554 Fix copyright header for edited files 7 years ago
Phillip Webb e975dbe3f0 Only use jar shortcut for matching URLs
Update JAR `Handler` logic so that the existing `jarFile` is only used
if the requested URL starts with the same path. Prior to this commit it
was possible to construct a URL with another URL as context. This could
mean that the `handler` was shared and the already resolved `jarFile`
contained in the handler wasn't necessarily suitable.

Fixes gh-12483
7 years ago
Andy Wilkinson eee891dbc8 Decode file: URLs passed into PropertiesLauncher via loader.path
Closes gh-12325
7 years ago
Stephane Nicoll b4a7e1d64b Use toLowerCase() and toUpperCase() with Locale.ENGLISH
This commit updates all `toLowerCase()` and `toUpperCase` invocations to
use the variant that takes a `Locale` to avoid locale-specific side
effect.

Closes gh-12213
7 years ago
Andy Wilkinson 915eaf3447 Polish 7 years ago
Andy Wilkinson 746cc0f70b Make JarFile.size() return the number of entries in the jar
Closes gh-12195
7 years ago
Andy Wilkinson d59000ceb1 Change ownership when log file is created by launch script
Closes gh-11951
7 years ago
Phillip Webb 798522d890 Format with Eclipse Oxygen SR2 7 years ago
Spring Buildmaster 6414b42335 Next Development Version 7 years ago
Phillip Webb 9b8cb9a463 Protect against symlink attacks
Update embedded launch script to no longer change ownership of files
or folders that already exist.

Fixes gh-11397
7 years ago
Phillip Webb 61f7bd8576 Polish 7 years ago
Stephane Nicoll f86b44f2ec Reduce StringBuilder creation in TypeExtractor.visitDeclared()
Closes gh-11845
7 years ago
Phillip Webb 8e783cdae9 Polish 7 years ago
Stephane Nicoll 71ab5dd748 Restore proper handling of array types
Closes gh-11512
7 years ago
Stephane Nicoll 927c2cacfa Rework type generation algorithm
The initial solution to gh-11512 was still using a plain `toString` that
could potentially break with a JDK upgrade. Turns out that JDK9 actually
uses the same type for AnnotatedType and ClassType so the trick of using
a visitor doesn't work anymore.

Retrospectively, it is quite easy to generate the full type once we have
the DeclaredType as we already have some logic to get the qualified,
that is raw, type and we have access to the type parameters.

This commit still uses a `toString` to generate the representation of
the type parameters but this looks much safer than trying to redo what
such a simple `toString` should do. Also, the additional metadata that
we could get on an ExecutableElement does not apply to them.

Closes gh-11512
7 years ago
Stephane Nicoll d8b1f1692a Fix type detection with annotated getter
This commit makes sure that the `type` of a property is generated
property if the getter of the property is annotated. Previously, a type
implementation may expose the annotation information.

Closes gh-11512
7 years ago
Phillip Webb 700d3c3907 Relocate shaded JSON API in annotation-processor
Move the 'shade' copy of the JSON API to a separate src folder to make
it clearer that we don't own the code. Also polished some formatting
and suppressed a few warnings.

Closes gh-10307
7 years ago
Stephane Nicoll b9f4fd0b65 Fix exclude filter to not exclude MediaType
This commit removes MediaType from the list of exclude types as it looks
like an error: MediaType has a constructor taking a `String` and binding
works fine with it.

This has the effect of properly generating the metadata for the only key
that Spring Boot exposes with a MediaType type:
spring.data.rest.default-media-type.

Closes gh-11568
7 years ago
Stephane Nicoll 4568f14c71 Fix javadoc warnings 7 years ago
Stephane Nicoll d49b022ce3 Shade json in configuration processor
This commit shades the json API in the configuration processor so that
it doesn't bring `android-json` to the classpath anymore.

Closes gh-10307
7 years ago
Stephane Nicoll 397d3e85e8 Fix Windows build
Closes gh-11459
7 years ago
Douglas Cardoso feecc27677 Log inaccessible file in RandomAccessDataFile
Closes gh-11401
7 years ago
Phillip Webb 2c429ba77d Restore static final formatting
Restore static final constants to upper case formatting.

See gh-10457
7 years ago
Phillip Webb 6a55623910 Polish 7 years ago
dreis2211 d5370e6852 Precompile current dir pattern in Handler
Closes gh-11321
7 years ago
dreis2211 37437a0fe2 Avoid allocations from lower-casing spec in JAR Handler
Closes gh-11314
7 years ago
Stephane Nicoll 846e642631 Properly handle class reference
Previously, a condition on a class targeting an inner class would
generate an invalid String representation of it. Unfortunately, the
`toString` representation misses the `$` sign between the outer class
and the inner class name.

This commit post-processes the values to generate the appropriate
representation.

Closes gh-11282
7 years ago
Andy Wilkinson a491727b7c Avoid creating unnecessary garbage during URL normalization
Closes gh-11207
7 years ago
Sylwester Lachiewicz 0a6f5fb2be Update Apache Maven Central repository url
Closes gh-11190
7 years ago
Spring Buildmaster df2ae7aa19 Next Development Version 7 years ago
Stephane Nicoll 373f7db3b5 Add missing supported source version
Closes gh-10929
7 years ago
dreis2211 605e95145a Fix typos in ApplicationArguments and Library
Closes gh-10811
7 years ago
Johnny Lim 4979af9fa5 Remove unnecessary assignments
Closes gh-10805
7 years ago
Spring Buildmaster c0f9f64776 Next Development Version 7 years ago
Johnny Lim bfa291f671 Polish 7 years ago
Spring Buildmaster 30eb937a83 Next Development Version 7 years ago
Stephane Nicoll af18110226 Polish "Improve exception message for invalid source"
Closes gh-10130
7 years ago
Aurélien Pupier 44b60c72e3 Improve exception message for invalid source
See gh-10130
7 years ago
Andy Wilkinson 7a87c69dd0 Normalize spec when creating jar URL by removing /../ and /./
Previously when Handler was creating a URL from a context URL and a
spec, any occurrances of /../ or /./ in the spec would be left as-is.
This differed from the JDK's Handler implementation which normalizes
the URL by modifying the path to remove any occurrences of /../ or
/./

This commit updates our Handler implementation to align it with the
JDK's. Tests have been added to assert that, given the same inputs,
the two Handler classes produce the same output.

Closes gh-9917
7 years ago
Andy Wilkinson b7ac5f2eb2 Polish "Make JarURLConnection return entry's last modified time"
Closes gh-9893
7 years ago
rostislav.dudka 7c7259beec Make JarURLConnection return entry's last modified time
See gh-9893
7 years ago
Spring Buildmaster 17a5bb0be4 Next development version 7 years ago
Spring Buildmaster 41c5c0e7c9 Next development version 7 years ago
Andy Wilkinson e0be40cd94 Polish "Locate additional metadata when using Gradle 4"
Closes gh-9732
7 years ago
Misagh Moayyed 980b83c0d8 Locate additional metadata when using Gradle 4
Closes gh-9758
7 years ago
Phillip Webb 28dad44e2d Be defensive about JUL calls from JAR Handler
Update nested JAR support to only obtain JUL loggers when absolutely
necessary and to defensively deal with failures.

Prior to this commit it was not possible to override
`java.util.logging.manager` to use a nested JAR as the logger
implementation.

Fixes gh-9848
7 years ago
Stephane Nicoll 11fb792e88 Fix source repository links in maven plugin site
Closes gh-9671
7 years ago
Phillip Webb aa57ca7e18 Polish 7 years ago
Stephane Nicoll d77056639d Add a warning about fully executable archive
Closes gh-9574
8 years ago
Andy Wilkinson e6a3ca5da6 Address deprecation warning that's generated by Gradle 4.x
In Gradle 4.x, SourceSetOutput now has multiple classes directories
and getClassesDir() has been deprecated. This commit introduces the
use of reflection to use getClassesDirs() when it's available rather
than getClassesDir().

Closes gh-9559
8 years ago
Andy Wilkinson 59122358d3 Clean up and format code 8 years ago
Stephane Nicoll acda4f905f Add support for deprecation level
This commit ensures that deprecation level set in manual metadata is
properly merged in the generated one.

Closes gh-9449
8 years ago
Andy Wilkinson 2d3bcae4e1 Make JarURLConnection return entry's length from getContentLengthLong()
Closes gh-9484
8 years ago
Spring Buildmaster 05d4d0281c Next Development Version 8 years ago
Spring Buildmaster 88e43c8421 Next Development Version 8 years ago
Andy Wilkinson 5c708ae712 Merge branch '1.4.x' into 1.5.x 8 years ago
Andy Wilkinson 5b4f9edc86 Restore original TCCL in PropertiesLauncherTests
Calling launch of PropertiesLauncherTests sets the thread context
class loader to an instance of LaunchedURLClassLoader. To avoid this
class loader being used beyond the scope of the test and launcher
that created it, this commit updates PropertiesLauncherTests to
capture the TCCL before each test and restore it after each test.

Closes gh-9378
8 years ago
Andy Wilkinson c22230a418 Try making FilePool static to fix the Mockito problem on Bamboo 8 years ago
Andy Wilkinson e11b7aff08 Ensure that file is released back to pool when seek fails
Closes gh-9370
8 years ago
Stephane Nicoll 9b2ad6100e Fix reference of custom layout example
Closes gh-9342
8 years ago
Andy Wilkinson f7127e5522 Ensure that closing a JarFile closes all underlying resources
Closes gh-8871
8 years ago
Phillip Webb 74f411faed Formatting 8 years ago
Stephane Nicoll cdf5f6e0ee Add support for deprecation level in manual metadata
This commit allows to specify a deprecation level to a manual metadata
entry. The purpose of that new attribute is to distinguish cases where
the property is still bound (default) from cases where the property no
longer exists and won't be bound.

This gives the opportunity to IDEs to still show the property as an
error and offer documentation and an action to rename it if a
replacement exists.

Closes gh-9074
8 years ago
Stephane Nicoll 643dea18ee Accommodate with Lombok generation ordering
Previously, if lombok was running before the configuration metadata
annotation processor, duplicated keys were created as both the
getter/setter and the special lombok handling applied.

This commit makes sure to be lenient by removing duplicate metadata
entries. This commit also makes sure to identify the getter of a
nested group if present. That way, the sourceMethod is set consistently
and avoid the creation of a duplicate group.

Closes gh-8886
8 years ago
Stephane Nicoll ea4e6fea35 Polish 8 years ago
Stephane Nicoll f8e1345b75 Unify versions used in integration tests
This commit makes sure the integration tests use the same versions as
the one managed by `spring-boot-dependencies` (including Maven plugins).

Closes gh-8947
8 years ago
Stephane Nicoll 7b1fc01733 Fix checkstyle violations 8 years ago
Stephane Nicoll 063d301fd3 Make LayoutType public
Closes gh-9067
8 years ago
Spring Buildmaster 9768b0a8c2 Next Development Version 8 years ago
Spring Buildmaster d719d2cbbc Next Development Version 8 years ago
Dave Syer 14638e67bc Extended PropertiesLauncher class location logic
Update `PropertiesLauncher` so that classes can be loaded outside of
`BOOT-INF/classes`. You can use a subdirectory, or the root directory
of an external jar (but not the parent archive to avoid issues
with agents and awkward delegation models).

Fixes gh-8480
Closes gh-8486
8 years ago
Phillip Webb ad38776de3 Polish 8 years ago
Phillip Webb ddcb5ee328 Polish 8 years ago
Andy Wilkinson c55bfb00b1 Merge branch '1.4.x' into 1.5.x 8 years ago
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 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 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
Spring Buildmaster d23fa24340 Next Development Version 8 years ago
Spring Buildmaster 2a83e80a9b Next Development Version 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 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 f1012c104a Polish 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 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 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 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