100 Commits
Author SHA1 Message Date
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
Phillip Webb 9f031b04e5 Merge branch '3.1.x'
Closes gh-38507
2023-11-22 11:13:12 -08:00
Phillip Webb bc504a8a03 Fix @ConditionalOnBean with annotation early FactoryBean initialization
Update `OnBeanCondition` with a variant of `getBeanNamesForAnnotation`
that does not cause early `FactoryBean` initialization.

Fixes gh-38473
2023-11-22 11:10:59 -08:00
Phillip Webb f37d6c9294 Upgrade to WebJars Locator Core 0.55
Closes gh-38481
2023-11-21 12:20:06 -08:00
Phillip Webb 3195560385 Upgrade to Rabbit Stream Client 0.14.0
Closes gh-38480
2023-11-21 12:20:06 -08:00
Phillip Webb 30208588a0 Upgrade to Mockito 5.7.0
Closes gh-38479
2023-11-21 12:20:06 -08:00
Phillip Webb ece763c44f Upgrade to GraphQL Java 21.3
Closes gh-38478
2023-11-21 12:20:06 -08: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 59493e8306 Fix failing tests following version upgrades 2023-11-20 21:03:17 -08:00
Phillip Webb 84ddeea1a4 Merge branch '3.1.x'
Closes gh-38425
2023-11-20 20:35:40 -08:00
Phillip Webb 092428e752 Merge branch '3.0.x' into 3.1.x
Closes gh-38424
2023-11-20 20:35:31 -08:00
Phillip Webb 1e4d605ab7 Merge pull request #38403 from jonatan-ivanov
* pr/38403:
  Update access log pattern to align with Tomcat 10

Closes gh-38403
2023-11-20 20:35:21 -08:00
Phillip Webb 38ad303157 Merge pull request #38390 from abdullah-jaffer
* pr/38390:
  Replace Function<String, String> with UnaryOperator<String>

Closes gh-38390
2023-11-20 20:07:52 -08:00
Phillip Webb b296ff890e Upgrade to Pulsar Reactive 0.5.0
Closes gh-38406
2023-11-20 18:52:45 -08:00
Phillip Webb 261ea6ce44 Upgrade to Versions Maven Plugin 2.16.2
Closes gh-38422
2023-11-20 18:52:44 -08:00
Phillip Webb bd53a3f260 Upgrade to Tomcat 10.1.16
Closes gh-38421
2023-11-20 18:52:44 -08:00
Phillip Webb b92dac5207 Upgrade to Spring WS 4.0.8
Closes gh-38320
2023-11-20 18:52:44 -08:00
Phillip Webb c3949dd1c9 Upgrade to Spring Security 6.2.0
Closes gh-38318
2023-11-20 18:52:44 -08:00
Phillip Webb 5bb05e6c7a Upgrade to Spring RESTDocs 3.0.1
Closes gh-38420
2023-11-20 18:52:44 -08:00
Phillip Webb cd56affdf3 Upgrade to Spring Pulsar 1.0.0
Closes gh-38419
2023-11-20 18:52:44 -08:00
Phillip Webb 5a89ddb1fd Upgrade to Spring Kafka 3.1.0
Closes gh-38316
2023-11-20 18:52:44 -08:00
Phillip Webb d00ca7dd4d Upgrade to Spring Data Bom 2023.1.0
Closes gh-38311
2023-11-20 18:52:44 -08:00
Phillip Webb e5ff5f56ea Upgrade to Spring AMQP 3.1.0
Closes gh-38308
2023-11-20 18:52:44 -08:00
Phillip Webb d6157d1fe3 Upgrade to Pooled JMS 3.1.5
Closes gh-38418
2023-11-20 18:52:44 -08:00
Phillip Webb eff1e5b5e2 Upgrade to Netty 4.1.101.Final
Closes gh-38417
2023-11-20 18:52:44 -08:00
Phillip Webb 498b54b4f0 Upgrade to MongoDB 4.11.1
Closes gh-38416
2023-11-20 18:52:43 -08:00
Phillip Webb 4e76563b9f Upgrade to Maven Javadoc Plugin 3.6.2
Closes gh-38415
2023-11-20 18:52:43 -08:00
Phillip Webb b2338f23c8 Upgrade to Lettuce 6.3.0.RELEASE
Closes gh-38414
2023-11-20 18:52:35 -08:00
Phillip Webb c84880e0e1 Upgrade to Kotlin Serialization 1.6.1
Closes gh-38413
2023-11-20 17:48:14 -08:00
Phillip Webb c76329cb43 Upgrade to JUnit Jupiter 5.10.1
Closes gh-38412
2023-11-20 17:48:10 -08:00
Phillip Webb 67c4a989fb Upgrade to Infinispan 14.0.21.Final
Closes gh-38411
2023-11-20 17:48:06 -08:00
Phillip Webb 4f285b40bf Upgrade to Hazelcast 5.3.6
Closes gh-38410
2023-11-20 17:48:01 -08:00
Phillip Webb 593b9f7c2b Upgrade to Dropwizard Metrics 4.2.22
Closes gh-38409
2023-11-20 17:47:56 -08:00
Phillip Webb 5141ad568c Upgrade to DB2 JDBC 11.5.9.0
Closes gh-38408
2023-11-20 17:47:52 -08:00
Phillip Webb cd0894edee Upgrade to Byte Buddy 1.14.10
Closes gh-38407
2023-11-20 17:47:48 -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
Phillip Webb 0ef87f5102 Merge branch '3.1.x' 2023-11-13 10:42:56 -08:00
Phillip Webb b902bf6aca Merge branch '3.0.x' into 3.1.x 2023-11-13 10:42:32 -08:00
Phillip Webb 09e5a2f24a Update copyright year of changed files 2023-11-13 10:42:26 -08:00
Phillip Webb 80210e93d3 Make LogCorrelationPropertySource an EnumerablePropertySource
Change `LogCorrelationPropertySource` to an `EnumerablePropertySource`
to reduce the likelihood of `Binder` errors.

Closes gh-38349
2023-11-13 10:40:24 -08:00
Phillip Webb ba56953ea5 Skip ValueObjectBinder if parameter names cannot be discovered
Update `ValueObjectBinder` so that it is skipped if parameter names
cannot be discovered. This is much more likely as of Since Spring
Framework 6.1 as it no longer performs ASM parsing to discover names.

Fixes gh-38201
2023-11-13 10:24:06 -08:00
Phillip Webb 1a487d5cad Merge branch '3.1.x' 2023-11-13 09:27:56 -08:00
Phillip Webb 211e8c004a Merge branch '3.0.x' into 3.1.x 2023-11-13 09:27:45 -08:00
Phillip Webb 2cabcbc8fa Polish adoc formatting 2023-11-13 09:27:15 -08:00
Phillip Webb e1203e7a77 Merge pull request #38274 from EvaristeGalois11
* pr/38274:
  Add Liquibase `show-summary` and `show-summary-output` properties
  Remove Liquibase javax.activation excludes

Closes gh-38274
2023-11-09 12:22:10 -08:00
Phillip Webb 897ba513fe Merge branch '3.1.x'
Closes gh-38272
2023-11-08 12:54:46 -08:00
Phillip Webb 445d0a22db Merge branch '3.0.x' into 3.1.x
Closes gh-38271
2023-11-08 12:54:38 -08:00
Phillip Webb 45e9804495 Merge branch '2.7.x' into 3.0.x
Closes gh-38270
2023-11-08 12:54:28 -08:00
Phillip Webb 61dbf45628 Fix package declaration of sample in reference docs
Update the "Developing Your First Spring Boot Application" sample so
that the package is not removed.

Closes gh-34513
2023-11-08 12:53:23 -08: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
Phillip Webb 690cfa220a Provide a way to create custom ApplicationContextFactory
Update `SpringBootContextLoader` so that `getApplicationContextFactory`
is now a protected that may be overridden to provide a custom
`ApplicationContextFactory` instance.

Closes gh-38205
2023-11-07 11:53:10 -08:00
Phillip Webb 4bc63b579a Merge branch '3.1.x'
Closes gh-38215
2023-11-05 13:37:02 -08:00
Phillip Webb f6910bae16 Document that PEM content can be used directly in application.yaml
Closes gh-38210
2023-11-05 13:36:38 -08:00
Phillip Webb 06e196c4a6 Merge branch '3.1.x'
Closes gh-38214
2023-11-05 13:34:21 -08:00
Phillip Webb 4aba45d9fb Merge branch '3.0.x' into 3.1.x
Closes gh-38213
2023-11-05 13:33:59 -08:00
Phillip Webb 7f90364c78 Merge branch '2.7.x' into 3.0.x
Closes gh-38212
2023-11-05 13:33:44 -08:00
Phillip Webb 06434f050a Upgrade to Spring Asciidoctor Extensions 0.6.3
Closes gh-38211
2023-11-05 13:33:02 -08:00
Phillip Webb f69ea372ea Merge branch '3.1.x' 2023-11-05 11:19:26 -08:00
Phillip Webb 0ea75f0f65 Polish 2023-11-05 10:53:25 -08: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 9ba46f538b Polish 2023-11-02 14:24:05 -07:00
Phillip Webb cc4ef32efe Merge branch '3.1.x' 2023-11-02 14:19:12 -07:00
Phillip Webb 47c1088111 Polish 2023-11-02 14:19:07 -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 54313d1962 Update copyright year of changed files 2023-11-02 14:13:38 -07:00
Phillip Webb e891a3e24c Polish adoc formatting 2023-11-02 14:12:56 -07:00
Phillip Webb a35fb7505f Merge branch '3.1.x'
Closes gh-38179
2023-11-01 18:22:39 -07:00
Phillip Webb 683d791104 Merge branch '3.0.x' into 3.1.x
Closes gh-38178
2023-11-01 18:22:28 -07:00
Phillip Webb e5c8723dda Merge branch '2.7.x' into 3.0.x
Closes gh-38177
2023-11-01 18:22:06 -07:00
Phillip Webb eecb15d1ba Rename startDaemonAwaitThread() inside TomcatWebServer to match intent
Closes gh-38155
2023-11-01 18:21:36 -07:00
Phillip Webb 663243e60c Fix open telemetry container lifecycle issues
Mark test as `@DirtiesContext` so that the context is closed before
the container.

Closes gh-38176
2023-11-01 18:16:38 -07:00
Phillip Webb 9b71ef4114 Polish and refactor some SSL internals
Polish and refactor some of the internal SSL code to make it easier to
add additional functionality in the future.
2023-11-01 16:14:59 -07:00
Phillip Webb 30a7426e86 Apply key property to the keystore and not to the truststore
Update `PropertiesSslBundle` so that key properties are now
only applied to the keystore and not the truststore.

Closes gh-38125
2023-11-01 16:10:51 -07:00
Phillip Webb 5dc5c2a4bc Rename KeyVerifier to CertificateMatcher
Rename `KeyVerifier` to `CertificateMatcher` and refactor some
of the internals. This commit also adds test helper classes to
help simplify some of the tests.

See gh-38173
2023-11-01 16:10:31 -07:00
Phillip Webb 1b61bc1f20 Move PEM verification to spring-boot-autoconfigure
Move `KeyVerifier` to spring-boot-autoconfigure to reduce the
public API required in `PemSslStoreBundle`.

This commit also moves the verify property so that is can be set
per store.

Closes gh-38173
2023-11-01 16:10:16 -07:00
Phillip Webb 5e5d2265f5 Introduce PemSslStore as an alternative to PemSslStoreDetails.
Add a `PemSslStore` interface that can be used as an alternative
to `PemSslStoreDetails` when PEM content has already been loaded
and parsed.

Closes gh-38175
2023-11-01 16:06:28 -07:00
Phillip Webb 2b39ec6f60 Introduce a public PemContent class
Update `PemContent` so that it now holds PEM data and is public.
This update is required so that in the future we can make use of
our PEM parsing code in spring-boot-autoconfigure.

Closes gh-38174
2023-11-01 16:02:51 -07:00
Phillip Webb 2c6fca8df7 Allow alias and password to be configured on a per PEM store basis
Closes gh-38124
2023-11-01 16:02:33 -07:00
Phillip Webb 8bf847e549 Rename keyAlias parameter to alias
Rename the keyAlais parameter to alias since it may be used as either
the key alias or the certificate alias.

Also clarify the javadoc for keyPassword.

Closes gh-38099
2023-11-01 16:01:46 -07: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
Phillip Webb 464523ac04 Merge branch '3.1.x'
Closes gh-38048
2023-10-25 12:37:41 -07:00
Phillip Webb 6e65d9380b Add missing @ServiceConnection annotation to reference doc sample
Closes gh-38046
2023-10-25 12:36:59 -07:00
Phillip Webb 0c66db7b18 Refine container initialization and parallel startup logic
Update `TestcontainersLifecycleBeanPostProcessor` to restore early
container initialization logic and refine startup logic. Initial bean
access now again triggers the creation all container beans. In addition
the first access of a `Startable` bean now attempts to find and start
all other `Startable` beans.

Fixes gh-37989
2023-10-25 11:58:22 -07:00
Phillip Webb 4e7c0737d4 Fix PropertiesLauncher classpath detection without 'loader.path' set
Update `PropertiesLauncher` to restore classpath detection logic applied
when no `loader.path` property is set.

Fixes gh-37992
2023-10-24 17:03:18 -07:00
Phillip Webb 7bd9989614 Fix merge conflict errors
See gh-37999
2023-10-23 19:40:44 -07:00
Phillip Webb 2ac69160c7 Revert "Allow PemPrivateKeyParser to parse multiple keys"
This reverts commit 32e6ce210e.

Closes gh-37999
2023-10-23 18:32:12 -07:00
Phillip Webb e1bd24695d Try @AssertFileChannelDataBlocksClosed for Windows fix
This updates commit dad5dc6750 to
see if @AssertFileChannelDataBlocksClosed will take care of
closing files.

See gh-7161
2023-10-20 10:05:43 -07:00
Phillip Webb 3eeb1b2849 Merge branch '3.1.x' 2023-10-19 23:21:42 -07:00
Phillip Webb 9f3afb3636 Merge branch '3.0.x' into 3.1.x 2023-10-19 23:21:20 -07:00
Phillip Webb 7c864804d5 Merge branch '2.7.x' into 3.0.x 2023-10-19 23:21:08 -07:00
Phillip Webb d47f8bf945 Update copyright year of changed files 2023-10-19 23:20:43 -07:00