Commit Graph

3231 Commits

Author SHA1 Message Date
Moritz Halbritter
3479304e13 Disable creation time verification on Linux
Closes gh-40423
2024-04-18 11:58:46 +02:00
Moritz Halbritter
00a10fdc52 Move Docker Compose and Testcontainers to separate section
See gh-38361
2024-04-17 14:05:52 +02:00
Phillip Webb
dfee56ad9d Merge branch '3.2.x'
Closes gh-40381
2024-04-16 22:17:28 -07:00
Phillip Webb
78e12251e9 Optimize VirtualZipDataBlock
Add some optimizations to `VirtualZipDataBlock` that help when
sequentially reading the block from a JarInputStream.

Closes gh-40125
2024-04-16 22:16:00 -07:00
Phillip Webb
13f41da54f Merge branch '3.2.x'
Closes gh-40379
2024-04-16 15:32:03 -07:00
Phillip Webb
9b0593efe3 Fallback to RandomAccessFile on ClosedByInterruptException
Refine the fix for gh-38611 so that `ClosedByInterruptException` no
longer retries in a loop.

Our previous fix was flawed due to the fact that another interrupt
could occur after we clear the first and whilst we are reading data.
If this happens 10 times in a row, we raise an exception and end up
causing NoClassDefFoundError errors.

Our new approach retains the use of `FileChannel` and a direct buffer
up to the point that a `ClosedByInterruptException` is raised or the
thread is detected as interrupted.  At that point, we temporarily
switch to using a `RandomAccessFile` to access the data. This will
block the thread until the data has been read.

Fixes gh-40096
2024-04-16 14:47:07 -07:00
Phillip Webb
4203e1f2fa Rename FileChannelDataBlock to FileDataBlock
Rename the internal `FileChannelDataBlock` to `FileDataBlock` since we
want to fallback to a `RandomAccessFile` when a thread is interrupted.

See gh-40096
2024-04-16 14:46:56 -07:00
Andy Wilkinson
0ed6864d1d Merge branch '3.2.x'
Closes gh-40324
2024-04-11 16:54:46 +01:00
Andy Wilkinson
45e9412d9b Merge branch '3.1.x' into 3.2.x
Closes gh-40323
2024-04-11 16:54:33 +01:00
Andy Wilkinson
baf5a7f130 Make includes configurable via a property
See gh-39837
2024-04-11 16:32:17 +01:00
Andy Wilkinson
2a6293940b Polish "Make excludes configurable via property"
See gh-39837
2024-04-11 16:31:24 +01:00
Matti Tahvonen
58fc8f8c01 Make excludes configurable via property
See gh-39837
2024-04-11 15:43:31 +01:00
Phillip Webb
3ed77ae5f3 Polish 2024-04-04 23:45:21 -07:00
Moritz Halbritter
6abcde3ce8 Prevent deprecation for DBCP2 username and password properties
Closes gh-40076
2024-04-04 15:06:30 +02:00
Scott Frederick
813507b791 Merge branch '3.2.x'
Closes gh-40166
2024-04-03 16:32:13 -05:00
Scott Frederick
1c2a43d1e6 Merge branch '3.1.x' into 3.2.x
Closes gh-40165
2024-04-03 16:30:41 -05:00
Felix
8a42935dad Apply instanceof pattern matching
See gh-40085
2024-04-03 16:30:01 -05:00
Phillip Webb
10260c084b Rename Antora component from spring-boot to boot
Closes gh-40131
2024-03-28 13:21:27 -07:00
Moritz Halbritter
3ab21ce146 Merge branch '3.2.x'
Closes gh-40118
2024-03-27 09:42:59 +01:00
Moritz Halbritter
957facf1cc Merge branch '3.1.x' into 3.2.x
Closes gh-40117
2024-03-27 09:35:44 +01:00
Moritz Halbritter
ff66036e90 Remove redundant Regex escapes
Closes gh-40116
2024-03-27 09:34:28 +01:00
Phillip Webb
af0353ddd3 Remove anchor-rewrite.properties
Remove `anchor-rewrite.properties` now that we have `rewrite.adoc` to
replace them.

See gh-40062
2024-03-26 11:27:03 -07:00
Phillip Webb
dab1afcc77 Fix anchor rewrites in preparation for migration to Antora
Update `anchor-rewrite.properties` to fix a few errors and remove
elements that no longer exist. This commit also fixes a few anchors
in some `.adoc` files.

See gh-40062
2024-03-26 11:18:27 -07:00
Moritz Halbritter
8724807628 Update documentation to reflect CDS work
Closes gh-39834
2024-03-26 11:27:47 +01:00
Moritz Halbritter
2d9b1ad592 Use xref for documentation links
Closes gh-33745
2024-03-26 10:11:47 +01:00
Moritz Halbritter
de150daf12 Upgrade Cassandra driver to 4.18.0 and change coordinates
Closes gh-39090
2024-03-26 08:58:22 +01:00
Phillip Webb
6bb6a798ce Set version to true in antora.yml to allow docs generation
See gh-33766
2024-03-25 08:52:51 -07:00
Andy Wilkinson
03754cb2d6 Merge branch '3.2.x'
Closes gh-40098
2024-03-25 11:03:30 +00:00
Andy Wilkinson
0ec5eab8af Merge branch '3.1.x' into 3.2.x
Closes gh-40097
2024-03-25 10:42:14 +00:00
Andy Wilkinson
aee88115ea Test Gradle plugin against Gradle 8.7
This commit includes some changes to test Gradle scripts to avoid
Gradle 8.7's new deprecation warning about URI conversion.

Closes gh-40093
2024-03-25 10:24:21 +00:00
Moritz Halbritter
4047c00aa5 Implement SBOM actuator endpoint
Closes gh-39799
2024-03-21 18:06:48 -07:00
Andy Wilkinson
93fc2a455b Reinstate Gradle Plugin toolchain's maximum compatible Java version
See gh-33766
2024-03-21 10:06:28 +00:00
Phillip Webb
8ee20c8dae Migrate maven-plugin to Antora
See gh-33766
2024-03-20 15:21:56 -07:00
Phillip Webb
18a2b2e9fb Migrate gradle-pluigin to Antora
See gh-33766
2024-03-20 15:21:54 -07:00
Phillip Webb
ecf89c3fe3 Polish asciidoc generated by changelog generator
Refine the generator so that an additional space is included after
section titles.
2024-03-20 15:10:39 -07:00
Moritz Halbritter
558d811b0a Use JarFile instead of ZipInputStream
ZipInputStream can't cope with some non-deflated entries, see
https://bugs.openjdk.org/browse/JDK-8143613.

JarFile works better, but it doesn't support creation time / access
time.

See gh-38276
2024-03-20 12:11:56 +01:00
Moritz Halbritter
5a77122abe Create classpath argfile on windows for run tasks
Closes gh-17766
2024-03-19 14:08:14 +01:00
Johnny Lim
412b8dd548 Polish
See gh-39910
2024-03-15 11:25:16 +01:00
Andy Wilkinson
702cf75b21 Merge branch '3.2.x'
Closes gh-39934
2024-03-13 18:40:28 +00:00
Andy Wilkinson
e2d53fa0e9 Ensure that Maven Plugin uses a consistent Framework dependency version
Fixes gh-39927
2024-03-13 18:38:38 +00:00
Moritz Halbritter
9411a4ce99 Adjust defaults for ExtractCommand
It now extracts the contents of the JAR in a folder named after the JAR
without the extension. It now also checks if the folder is empty.
There's a new --force option to skip those checks.

The "runner.jar" is now named like the uber JAR from which the
extraction has been started.

See gh-38276
2024-03-12 11:52:33 +01:00
Moritz Halbritter
7a417503e5 Fix tests on windows 2024-03-07 14:14:24 +01:00
Moritz Halbritter
793aca60d2 Implement extract and list-layers command
Adds a new jarmode called 'tools'. This provides two commands,
'extract' and 'list-layers'. list-layers is the same as list from
the layertools.

extract is able to extract the JAR in four different modes:

- CDS compatible extraction with libraries in a lib folder and a runner
.jar
- CDS compatible as above, but with layers
- Launcher based
- Launcher based with layers. This is essentially the same as extract
  from the layertools

The commands in layertools have been deprecated in favor of the commands
in 'tools'.

This also changes the behavior of layers.enabled from the Gradle and
Maven plugin: before this commit, layers.enabled prevents the inclusion
of the layer index file as well as the layertools JAR.
After this commit, layers.enabled only prevents the inclusion of the
layer index file.

layer.includeLayerTools have been deprecated in favor of includeTools,
and the layertools JAR has been renamed to tools.

Closes gh-38276
2024-03-07 13:34:13 +01:00
Eddú Meléndez
244f7c595c Remove redpanda image compatibility
Testcontainers added redpandadata/redpanda as valid image

Closes gh-39801
2024-02-29 15:30:12 +01:00
Eddú Meléndez
2e908298e5 Remove redpanda image compatibility
Testcontainers added redpandadata/redpanda as valid image

See gh-39776
2024-02-29 11:52:56 +01:00
Andy Wilkinson
70769d9377 Merge branch '3.2.x'
Closes gh-39794
2024-02-28 17:20:00 +00:00
Andy Wilkinson
306d52db77 Merge branch '3.1.x' into 3.2.x
Closes gh-39793
2024-02-28 17:19:46 +00:00
Andy Wilkinson
16b6400bdf Improve BuildpackReference's handling of URL-like strings on Windows
Closes gh-39792
2024-02-28 17:15:02 +00:00
Andy Wilkinson
e9d2c773b7 Merge branch '3.2.x'
Closes gh-39790
2024-02-28 15:06:49 +00:00
Andy Wilkinson
730a81c4a8 Merge branch '3.1.x' into 3.2.x
Closes gh-39789
2024-02-28 15:06:35 +00:00
Andy Wilkinson
dd38fb8b65 Limit wait time when checking process's availability
Closes gh-39788
2024-02-28 15:04:08 +00:00
Andy Wilkinson
bfc9ef8bc5 Merge branch '3.2.x'
Closes gh-39765
2024-02-27 12:39:28 +00:00
Andy Wilkinson
db0fcc5626 Merge branch '3.1.x' into 3.2.x
Closes gh-39764
2024-02-27 12:39:14 +00:00
Andy Wilkinson
54cdc83337 Only reference Gradle tasks beneath org.gradle.api
Fixes gh-39584
2024-02-27 12:38:07 +00:00
Phillip Webb
2b7320be1a Merge branch '3.2.x'
Closes gh-39690
2024-02-21 21:36:07 -08:00
Phillip Webb
a457638e6c Polish 'Decode URL content before passing it to NestedLocation.parse'
See gh-39675'

Closes gh-39675'
2024-02-21 21:16:33 -08:00
_ext Slovak, Jiri
06569e76f6 Decode URL content before passing it to NestedLocation.parse
URL can contains empty spaced encoded as %20, so it should be decoded
before passing it to NestedLocation. NestedLocation expects file system
path which should not contain URL encoded values.

See gh-39675
2024-02-21 17:28:55 -08:00
Phillip Webb
f8a1dae835 Merge branch '3.2.x' 2024-02-21 15:27:57 -08:00
Phillip Webb
12de6aa46a Merge branch '3.1.x' into 3.2.x 2024-02-21 15:27:27 -08:00
Phillip Webb
2c4909a89a Update copyright year of changed files 2024-02-21 13:58:53 -08:00
Scott Frederick
bb384f268e Merge branch '3.2.x'
Closes gh-39639
2024-02-20 10:34:54 -06:00
Scott Frederick
71e5e1252a Merge branch '3.1.x' into 3.2.x
Closes gh-39638
2024-02-20 10:34:32 -06:00
Scott Frederick
c93acdafbd Polish "Prevent long parse times for images with illegal char in tag"
See gh-39617
2024-02-20 10:27:28 -06:00
Jakob Wanger
c892544741 Prevent long parse times for images with illegal char in tag
Update the regular expression used to parse Docker images references to
prevent catastrophic backtracking when images names are long and the
tag contains an illegal character.

See gh-39617
2024-02-20 10:27:27 -06:00
Adrian Cole
4b0bed23b0 Migrate to Brave 6 and Zipkin Reporter 3
Signed-off-by: Adrian Cole <adrian@tetrate.io>

See gh-39049
2024-02-20 12:00:36 +01:00
Andy Wilkinson
e3de575841 Merge branch '3.2.x'
Closes gh-39550
2024-02-14 14:54:32 +00:00
Andy Wilkinson
deb3d70a2e Merge branch '3.1.x' into 3.2.x
Closes gh-39549
2024-02-14 14:54:16 +00:00
Andy Wilkinson
5bc4bdd1de Test Gradle plugin against Gradle 8.6
Closes gh-39548
2024-02-14 14:54:10 +00:00
Moritz Halbritter
7f55cae90f Merge branch '3.2.x' 2024-02-12 10:19:46 +01:00
Moritz Halbritter
4387b79831 Merge branch '3.1.x' into 3.2.x 2024-02-12 10:18:46 +01:00
Moritz Halbritter
8ffcfc9b77 Harmonize style of igored exceptions across the codebase 2024-02-12 10:14:20 +01:00
Scott Frederick
f5b1f811d6 Merge branch '3.2.x'
Closes gh-39514
2024-02-11 14:32:47 -06:00
Scott Frederick
eb75bb1339 Merge branch '3.1.x' into 3.2.x
Closes gh-39513
2024-02-11 14:32:35 -06:00
Jakob Wanger
7e90b4951b Enforce Gradle version to be at least of version 7.5
See gh-39508

Signed-off-by: Jakob Wanger <jakobwanger@gmail.com>
2024-02-11 14:30:26 -06:00
Scott Frederick
09a6ae51cc Add support for Bitnami container images with Docker Compose
Closes gh-35759
2024-02-09 14:58:25 -06:00
Andy Wilkinson
5ae533a00d Minimize scope of version management for commons-compress
See gh-39368
2024-02-06 15:08:15 +00:00
Chris Bono
ff8089de06 Update to Pulsar 3.2.0 and use Pulsar BOM
This commit updates Pulsar to 3.2.0 and leverages the newly added
Pulsar BOM in order to ease dependency management.

See gh-39408
2024-02-06 13:56:10 +01:00
Andy Wilkinson
9a5b3b3a2b Merge branch '3.2.x'
See gh-39369
2024-02-06 12:38:37 +00:00
Andy Wilkinson
84e390af70 Merge branch '3.1.x' into 3.2.x
See gh-39368
2024-02-06 12:37:18 +00:00
Andy Wilkinson
5f680ccac0 Revert "Stop managing version of commons-compress where it isn't needed"
This reverts commit 2b85cb0356.

See gh-39367
2024-02-06 12:36:26 +00:00
Moritz Halbritter
cc2233a7d9 Merge branch '3.2.x'
Closes gh-39423
2024-02-06 13:10:22 +01:00
Moritz Halbritter
976152b244 Merge branch '3.1.x' into 3.2.x
Closes gh-39422
2024-02-06 13:10:15 +01:00
Moritz Halbritter
8fd28d9ece Polish "Update the Debugging Documentation of the Spring Boot Maven Plugin"
See gh-39392
2024-02-06 13:07:55 +01:00
lukasdooo
b25d52c896 Update the Debugging Documentation of the Spring Boot Maven Plugin
See gh-39392
2024-02-06 13:06:57 +01:00
Moritz Halbritter
07ee7254a6 Align to Native Build Tools metadata repository default
Closes gh-39068
2024-02-05 08:46:57 +01:00
Eddú Meléndez
f3e7325064 Add service connection for Docker Compose and Testcontainers ActiveMQ
See gh-39363
2024-02-02 09:05:37 +01:00
Andy Wilkinson
f9363569ab Merge branch '3.2.x'
Closes gh-39369
2024-02-01 11:19:01 +00:00
Andy Wilkinson
0afe0635b9 Merge branch '3.1.x' into 3.2.x
Closes gh-39368
2024-02-01 11:17:41 +00:00
Andy Wilkinson
2b85cb0356 Stop managing version of commons-compress where it isn't needed
Closes gh-39367
2024-02-01 10:20:20 +00:00
Andy Wilkinson
899da7891a Merge branch '3.1.x' into 3.2.x
See gh-39340
2024-01-31 17:44:07 +00:00
Andy Wilkinson
dd082c6c21 Revert "Upgrade to Commons Compress 1.25.0"
This reverts commit 1c2a622f7f.

See gh-39148
2024-01-31 17:35:57 +00:00
Eddú Meléndez
f15cd93a35 Add service connection for Docker Compose and Testcontainers Artemis
See gh-39311
2024-01-31 08:37:03 +01:00
Scott Frederick
588d544392 Merge branch '3.2.x'
Closes gh-39348
2024-01-30 16:28:50 -06:00
Scott Frederick
5b76416b06 Merge branch '3.1.x' into 3.2.x
Closes gh-39347
2024-01-30 16:28:39 -06:00
Scott Frederick
a620d348ad Fix exporting of Docker image layers
The logic to extract layers from a downloaded Docker image assumed that
the layer entries in the image tar archive always had the file extension
`.tar`. This was the case with Docker and other compatible daemons until
Docker 25.0. With this commit, the extension is no longer assumed, but
any entries listed in `manifest.json` will be recognized.

Fixes gh-39323
2024-01-30 16:25:03 -06:00
Andy Wilkinson
10e750ab3b Merge branch '3.2.x'
Closes gh-39341
2024-01-30 13:53:13 +00:00
Andy Wilkinson
8c18d75b12 Merge branch '3.1.x' into 3.2.x
Closes gh-39340
2024-01-30 13:50:13 +00:00
Andy Wilkinson
1c2a622f7f Upgrade to Commons Compress 1.25.0
Closes gh-39148
2024-01-30 13:49:37 +00:00
Moritz Halbritter
f36b69f961 Merge branch '3.2.x'
Closes gh-39338
2024-01-30 13:48:44 +01:00
Piyal Ahmed
a85e99790b Fix NestedJarFile constructor javadoc
See gh-39285
2024-01-30 13:47:23 +01:00
Andy Wilkinson
df67dec561 Merge branch '3.2.x'
Closes gh-39306
2024-01-25 13:32:20 +00:00
Andy Wilkinson
a42a8ce620 Merge branch '3.1.x' into 3.2.x
Closes gh-39305
2024-01-25 13:31:59 +00:00
Andy Wilkinson
a6d1788be3 Tolerate OS and Java version differences in ExtractCommandTests
Co-Authored-By: Moritz Halbritter <moritz.halbritter@broadcom.com>

Closes gh-39303
2024-01-25 13:31:42 +00:00
Phillip Webb
8f1a330dd5 Update copyright header of cleaned up code
See gh-39259
2024-01-23 10:18:50 -08:00
Tobias Lippert
24e0864105 Replace !Optional.isPresent with Optional.isEmpty
See gh-39259
2024-01-23 10:18:50 -08:00
Tobias Lippert
7f4aaacf42 Simplify stream chain operations
See gh-39259
2024-01-23 10:18:49 -08:00
Phillip Webb
15f1e8536b Polish 'Remove redundant array creation'
See gh-39259
2024-01-23 10:18:49 -08:00
Tobias Lippert
d3c97adf79 Remove redundant array creation
See gh-39259
2024-01-23 10:18:49 -08:00
Tobias Lippert
316b415e95 Use try with resources instead of try-finally
See gh-39259
2024-01-23 10:18:49 -08:00
Tobias Lippert
cb26c31dd6 Replace explicit type with diamond operator
See gh-39259
2024-01-23 10:18:49 -08:00
Tobias Lippert
06265ee617 Use pattern variables
See gh-39259
2024-01-23 10:18:48 -08:00
Tobias Lippert
fe38cb3b4a Use string.repeat()
See gh-39259
2024-01-23 09:47:07 -08:00
Phillip Webb
ddb769bf7f Polish 'Simplify conditionals'
See gh-39259
2024-01-23 09:47:07 -08:00
Tobias Lippert
65a1ff84e6 Simplify conditionals
See gh-39259
2024-01-23 09:07:40 -08:00
Tobias Lippert
def7523398 Inline redundant if statements
See gh-39259
2024-01-23 09:07:35 -08:00
Scott Frederick
bee6fe899c Polish "Add Docker Compose service connection support for OpenLDAP"
See gh-39258
2024-01-22 16:51:45 -06:00
PhilKes
eb940c3907 Add Docker Compose service connection support for OpenLDAP
See gh-39258
2024-01-22 16:51:45 -06:00
Phillip Webb
a0a804cfdf Merge branch '3.2.x' 2024-01-22 12:20:41 -08:00
Phillip Webb
cff8cb98c7 Merge branch '3.1.x' into 3.2.x 2024-01-22 12:20:24 -08:00
Phillip Webb
088b313ae5 Polish 2024-01-22 11:57:37 -08:00
Moritz Halbritter
ca799f7b21 Tolerate actuator endpoints with the same id
Closes gh-39249
2024-01-22 12:33:05 +01:00
Phillip Webb
9de0085a43 Merge branch '3.2.x'
Closes gh-39226
2024-01-17 13:16:53 -08:00
Phillip Webb
eb0040c225 Fix ZipCentralDirectoryFileHeaderRecord entry comment read offset
Update `ZipCentralDirectoryFileHeaderRecord.copyTo` comment read offset
to account for the record position.

Fixes gh-39166
2024-01-17 13:16:43 -08:00
Andy Wilkinson
ac63fc0701 Merge branch '3.2.x'
Closes gh-39121
2024-01-12 16:25:13 +00:00
Andy Wilkinson
6bfac1f860 Fix handling of nested: UNC paths on Windows
Closes gh-38956
2024-01-12 15:53:19 +00:00
Andy Wilkinson
6f4a8cc0c3 Polish "Change log messages to use singular or plural instead of "noun(s)""
See gh-37017
2024-01-11 14:44:07 +00:00
teacmity
c6c7fbc15f Change log messages to use singular or plural instead of "noun(s)"
See gh-37017
2024-01-11 14:35:49 +00:00
Andy Wilkinson
17e9f0cb8e Merge branch '3.2.x'
Closes gh-39093
2024-01-11 11:36:38 +00:00
Andy Wilkinson
7087897507 Merge branch '3.1.x' into 3.2.x
Closes gh-39091
2024-01-11 10:33:57 +00:00
Andy Wilkinson
45c32854a5 Fix Checkstyle upgrade
Closes gh-38746
2024-01-10 15:37:38 +00:00
Christoph Dreis
b7c9c82180 Fix typos
See gh-38983
2024-01-10 09:06:45 +01:00
Phillip Webb
2d12fa073d Merge branch '3.2.x'
Closes gh-39071
2024-01-09 12:38:24 -08:00
Phillip Webb
e5f489f338 Restore manifest support for nested directory jars
Update `NestedJarFile` so that the `getManifest()` method returns the
manifest from the parent jar file for nested jars based on directory
entries.

This restores the previous behavior supported by Spring Boot 3.1 and
allows class methods such as `getPackage().getImplementationVersion()`
to return non `null` results.

Fixes gh-38996
2024-01-09 12:33:10 -08:00
Moritz Halbritter
25614710d5 Fail if superfluous properties are used in property metadata
Closes gh-37597
2024-01-09 13:59:51 +01:00
Moritz Halbritter
970c226847 Polish 2024-01-09 13:59:14 +01:00
Andy Wilkinson
5ef7db9a28 Start working on Spring Boot 3.3 2024-01-04 10:56:56 +00:00
Phillip Webb
f31ffbf927 Don't duplicate META-INF entries in nested directory jars
Update `ZipContent` so that `META-INF` entries are no longer duplicated
in nested jars created from directory entries. This aligns with the
behavior of the classic loader and prevents the same META-INF file from
being discovered twice.

Fixes gh-38862
2023-12-20 17:36:06 -08:00
Phillip Webb
246a0e6f21 Merge branch '3.1.x'
Closes gh-38878
2023-12-19 23:10:49 -08:00
Yanming Zhou
8cb8999772 Ban call of URLEncoder.encode/URLDecoder.decode(String,String)
Add ArchUnit rules to ban the use of `URLEncoder` calls with String
charsets and use `Charset` calls instead.

See gh-38740
2023-12-19 23:10:18 -08:00
Phillip Webb
5354ad15b3 Merge branch '3.1.x'
Closes gh-38877
2023-12-19 22:51:48 -08:00
Yanming Zhou
b6e87cee35 Remove unnecessary extends Object from generic
See gh-38739
2023-12-19 22:38:19 -08:00
Yanming Zhou
ac18e3015c Use .isEmpty() where feasible
See gh-38739
2023-12-19 22:38:05 -08:00
Phillip Webb
88429b6a66 Use file urls for unpacked jars
Update `JarFileArchive` so that unpacked jars use `file:` URLs rather
than `jar:file:`. This aligns with the behavior of Spring Boot 3.1 and
allows calls to `class.getSigners()` to work again.

Fixes gh-38833
2023-12-17 10:55:31 -08:00
Phillip Webb
b4a4e91238 Update ZipString to deal with reads that do not return all data
Refine the logic in `ZipString.hash` and `ZipString.compare` to deal
with the fact a read operation may not return all available bytes.

Fixes gh-38751
2023-12-13 13:29:37 -08:00
Moritz Halbritter
e81d1226fe Prevent integer overflow when checking disk space 2023-12-12 16:26:58 +01:00
Moritz Halbritter
a242bd81e2 Merge branch '3.1.x'
Closes gh-38747
2023-12-12 13:55:44 +01:00
Yanming Zhou
3c65fdfa12 Use idiomatic AssertJ assertions
See gh-38702
2023-12-12 13:53:20 +01:00
Phillip Webb
ea87787279 Merge branch '3.1.x'
Closes gh-38741
2023-12-11 20:37:45 -08:00
Phillip Webb
39bc7c8582 Support getPermissions() call on Gradle 8.6-milestone-1
The `getPermissions` method is now part of the private
`ParentDirectoryStub` class so we now need to call
`setAccessible(true)`.

Fixes gh-38718
2023-12-11 20:35:06 -08:00
Moritz Halbritter
6330190913 Merge branch '3.1.x'
Closes gh-38728
2023-12-11 09:44:19 +01:00
Yanming Zhou
ebfbc0ef05 Cleanup kotlin sources
1. remove unused imports
2. remove redundant semicolon
3. remove empty class body
4. remove redundant 'constructor' keyword
5. remove redundant 'Unit' return type
6. use non-null type if possible

See gh-38708
2023-12-11 09:23:42 +01:00
Andy Wilkinson
e6970243ee Retry read on ClosedByInterruptException
In gh-38154, we started handling ClosedByInterruptException. The
FileChannel was repaired by recreating it and then the exception was
rethrown. This allowed other threads to use the channel that had been
read by an interrupted thread while allowing that interruption to
continue.

This approach has proven to be insufficient as there are scenarios
where the read needs to succeed on the interrupted thread. This
commit updates the handling of ClosedByInterruptException so that
this is the case. The FileChannel is recreated as before but the
thread's interrupted flag is now cleared before retrying the read.
The flag is then reinstated so that any subsequent actions that
should fail due to the interruption will do so.

We could clear and reinstate the interrupted flag before the first
read, rather than catching ClosedByInterruptException. This approach
was rejected as it will have an impact on the performance of the
happy path where the thread hasn't been interrupted.

Fixes gh-38611
2023-12-07 10:49:40 -08:00
Phillip Webb
359a6cb5bb Use encoded version of path for jar URLs
Update `JarUrl` so that the encoded version of the path is used.
This allows jars to placed in directories with `#` or `!` in the
name.

Fixes gh-38660
2023-12-06 16:20:27 -08:00
Phillip Webb
847daf484c Fix JarUrlTests
Fix `JarUrlTests` to use the jarFile rather than temp.
2023-12-06 16:19:57 -08:00
Andy Wilkinson
49990afd78 Polish
See gh-38592
2023-12-05 20:49:34 +00:00
Andy Wilkinson
16c2ddb02c Merge branch '3.1.x'
Closes gh-38665
2023-12-05 20:31:17 +00:00
Andy Wilkinson
b424254587 Test Gradle plugin against Gradle 8.5
Closes gh-38664
2023-12-05 20:30:54 +00:00
Moritz Halbritter
d172b22064 Escape pipe symbol in properties changelog table cells
Closes gh-38515
2023-11-30 11:37:25 +01:00
Phillip Webb
6fd691af58 Allow FileSystems to be create by splitting URLs
Relax the constraint that a `NestedLocation` must have a nested entry
name specified so that URLs can be split and rebuilt.

Prior to this commit, given a URL of the following form:

	jar:nested:/myjar.jar!/nested.jar!/my/file

It was possible to create a FileSystem from
"jar:nested:/myjar.jar!/nested.jar" and from that create a path to
"my/file".

However, it wasn't possible to create a FileSystem from
"jar:nested:/myjar.jar", then create another file system from the path
"nested.jar" and then finally create a path to "/nested.jar".

This was because `nested:/myjar.jar` was not considered a value URL
because it didn't include a nested entry name.

Projects such as `JobRunr` were relying on the ability to compose file
systems, so it makes sense to remove our somewhat artificial
restriction.

Fixes gh-38592
2023-11-28 22:14:29 -08:00
Phillip Webb
9a0f95420a Update NestedByteChannel.read to read all possible data when
Update `NestedByteChannel.read` so that it loops until all
remaining data has been read into the buffer. Prior to this
commit, it was possible for to read only some bytes into the
buffer. Although it looks like this should be OK according to
the API documentation, the `ZipFileSystem` relies on all
remaining bytes being returned.

Fixes gh-38595
2023-11-28 22:14:29 -08:00
Phillip Webb
8c7e8778a6 Fix NegativeArraySizeException caused by missing unsigned conversion
Update `ZipContent` so that `eocd.totalNumberOfCentralDirectoryEntries`
is converted from a short to an unsigned int to prevent a negative
number from being used.

This commit also updates the code to consistently use `X.toUnsigned...`
helper methods rather than using bitwise operators.

Fixed gh-38572
2023-11-27 23:33:15 -08:00
Phillip Webb
0856e10443 Fix IndexOutOfBoundsException exception from parseUrl with empty spec
Update jar `Handler` code so that the `parseUrl` method can accept an
empty `spec`. Prior to this commit, a `classLoader.getResource("")`
call would result in a `null` result. This breaks a number of things
including `ClassPathResource` and `PathMatchingResourcePatternResolver`.

Fixes gh-38524
2023-11-23 14:35:04 -08:00
Johnny Lim
f9f73aa146 Polish
See gh-38508
2023-11-23 09:39:01 +01:00
Johnny Lim
175b6473c7 Polish
See gh-38389
2023-11-22 10:16:19 +01:00
Scott Frederick
d433deb737 Merge branch '3.0.x' into 3.1.x
Closes gh-38485
2023-11-21 17:30:54 -06:00
Scott Frederick
dabcebf8a3 Merge branch '2.7.x' into 3.0.x
Closes gh-38484
2023-11-21 17:30:07 -06:00
Scott Frederick
d1cce0f8ef Upgrade default CNB builders to Paketo Jammy
Closes gh-38477
2023-11-21 17:22:32 -06:00
Phillip Webb
6c3dec42e0 Add container support for Oracle Free which replaces Oracle XE
Update Docker Compose and Testcontainers support to work with
`gvenzl/oracle-free` which replaces `gvenzl/oracle-xe`.

Closes gh-38476
2023-11-21 11:51:59 -08:00
Phillip Webb
3a32e4e913 Merge branch '3.1.x'
Closes gh-38405
2023-11-20 16:27:46 -08:00
Phillip Webb
f68df82b30 Support lenient ContainerConnectionDetailsFactory hint registration
Update `ContainerConnectionDetailsFactory` hint registration logic
so that types are optional on the classpath.

See gh-36606
Fixes gh-38392
2023-11-20 16:26:22 -08:00
Moritz Halbritter
82f0684cd8 Merge branch '3.1.x'
Closes gh-38354
2023-11-14 17:04:41 +01:00
Moritz Halbritter
22a991b334 Document tags format used in Gradle and Maven plugins
Closes gh-33088
2023-11-14 17:03:50 +01:00
Phillip Webb
dbbde18d41 Attempt to fix Windows build failure due to open files
See gh-38204
2023-11-08 07:04:46 -08:00
Moritz Halbritter
b9a5bdc294 Merge branch '3.1.x'
Closes gh-38249
2023-11-07 11:28:52 +01:00
Moritz Halbritter
e549380a59 Merge branch '3.0.x' into 3.1.x
Closes gh-38248
2023-11-07 11:28:20 +01:00
Moritz Halbritter
3664877d80 Merge branch '2.7.x' into 3.0.x
Closes gh-38247
2023-11-07 11:24:16 +01:00
Andy Wilkinson
08a4a836aa Merge branch '3.1.x'
Closes gh-38233
2023-11-06 14:26:09 +00:00
Andy Wilkinson
b01235e68d Copy attributes from runtimeClasspath to productionRuntimeClasspath
Fixes gh-38209
2023-11-06 11:50:27 +00:00
Phillip Webb
c0f8b90d31 Return getLastModified result from JarUrlConnection
Update `JarUrlConnection` and `NestedUrlConnection` so that calls
to `getLastModified()` and `getHeaderFieldDate("last-modified", 0)`
always return a result.

Fixes gh-38204
2023-11-04 19:43:54 -07:00
Phillip Webb
77218a644e Merge branch '3.1.x' 2023-11-02 14:16:37 -07:00
Phillip Webb
afa4d274c2 Merge branch '3.0.x' into 3.1.x 2023-11-02 14:14:19 -07:00
Phillip Webb
8d53caa1c6 Merge branch '2.7.x' into 3.0.x 2023-11-02 14:13:47 -07:00
Phillip Webb
e891a3e24c Polish adoc formatting 2023-11-02 14:12:56 -07:00
Andy Wilkinson
890a3e72ac Repair file channel when it's closed by interruption
When an interrupted that calls FileChannel.read, the channel is
closed and the read fails with a ClosedByInterruptException. The
closure of the channel makes it unusable by other threads. To
allow other threads to read from the data block, this commit
recreates the FileChannel when a read fails on an interrupted
thread with a ClosedByInterruptException. The exception is then
rethrown to continue the thread's interruption.

Closes gh-38154
2023-11-01 17:12:43 +00:00
Andy Wilkinson
173e6543fd Merge branch '3.1.x'
Closes gh-38168
2023-11-01 15:06:20 +00:00
Andy Wilkinson
40ce6182a1 Merge branch '3.0.x' into 3.1.x
Closes gh-38167
2023-11-01 15:03:29 +00:00
Andy Wilkinson
b7f00c1087 Merge branch '2.7.x' into 3.0.x
Closes gh-38166
2023-11-01 15:02:54 +00:00
Moritz Halbritter
20edbb402f Merge branch '3.1.x' 2023-10-31 10:23:13 +01:00
Moritz Halbritter
607ed86edb Merge branch '3.0.x' into 3.1.x 2023-10-31 10:23:01 +01:00
Moritz Halbritter
f3c10ae97b Polish JsonStream 2023-10-31 09:49:01 +01:00
Andy Wilkinson
94e810201e Fix test for incremental build of renamed properties class
Previously, the .class file for the renamed properties class was
on the class path of the compilation in two places:

1. The output directory of the test's previous compilation
2. The output directory of the compilation of src/test/java of
   spring-boot-configuration-processor

The first of these locations is addressed by updating TestProject.
The .class file is now deleted from the project's output location
at the same time as the .java file is deleted from its source
location.

The second of these locations is addressed by configuring the class
path of the compiler to include a copy of the result of compiling
src/test/java of spring-boot-configuration-processor. From this copy
entries can then be deleted as needed without destabilizing other tests.

Closes gh-26271
2023-10-30 15:17:28 +00:00
Moritz Halbritter
f66c76e2a8 Merge branch '3.1.x'
Closes gh-38078
2023-10-27 13:47:23 +02:00
Moritz Halbritter
5ca7201fa5 Fix "Integrating with Actuator" code snippet
Closes gh-36114
2023-10-27 13:47:02 +02:00
Moritz Halbritter
35aa28485a Merge branch '3.1.x'
Closes gh-38069
2023-10-27 09:50:57 +02:00
Moritz Halbritter
8bb2228adf Document how to unset maven.compiler.release
Closes gh-37993
2023-10-27 09:50:12 +02:00
Phillip Webb
beb49e1933 Add tests for DataBlockInputStream and fix implementation oddities
Fix issues with `DataBlockInputStream` including the fact that remain
bytes were not tracked correctly. Also add some tests and fix a few
other unusual details with the implementation.

Closes gh-38066
2023-10-26 23:00:20 -07:00
Phillip Webb
4af9ed4d1d Fix Tomcat TldScanner issues by returning raw zip data for nested jars
Update JarUrlConnection so that the full raw zip data is returned from
nested jars when no entry name is specified. This update allows
Tomcat's `WarURLConnection` to work with our nested connections since
they can parse the returned raw zip data.

Fixes gh-38047
2023-10-26 23:00:20 -07:00
Phillip Webb
bba323ba5f Copy zip data descriptor records when creating virtual zip data
The zip specification states that when 'bit 3' of the general purpose
flags is set then a data descriptor record must be present. Prior to
this commit, our `VirtualZipDataBlock` ignored such records and would
create invalid data.

Although the generated data would work for zip parsers that read the
central directory records, it causes problems with streaming reader
implementations such as `JarInputStream`.

This commit updates the code so that it now copies the data descriptor
records. It support both blocks that have a signature and those that
don't. It also updates the generation logic to correctly deal with
any extra data bytes present after the local file header record.

Fixes gh-38063
2023-10-26 23:00:20 -07:00
Phillip Webb
b35c4d6497 Open loader jar URLs by default using runtimeVersion
Update `UrlJarFileFactory` so that `runtimeVersion` is used by default
instead of `baseVersion`. Prior to this commit we tried to mirror the
JDK handler on look for a `#runtime` fragment. This unfortunately
doesn't work with the URLs produced by `URLClassPath`.

This commit also fixes a bug in `NestedJarFile` where we didn't return
the correct result from `hasEntry`.

Fixes gh-38050
2023-10-25 21:20:42 -07:00
Andy Wilkinson
b167eb3b02 Merge branch '3.1.x' 2023-10-25 14:50:30 +01:00