Commit Graph

3594 Commits

Author SHA1 Message Date
Andy Wilkinson a1a336ddd8 Merge branch '3.0.x' into 3.1.x
Closes gh-36095
2023-06-27 20:08:39 +01:00
Andy Wilkinson b2bc114d6f Update javadoc to link to non-deprecated ConstructorBinding
Closes gh-36045
2023-06-27 20:08:03 +01:00
Andy Wilkinson 3f7fe25cb9 Merge branch '3.0.x' into 3.1.x
Closes gh-36044
2023-06-23 15:58:36 +01:00
Andy Wilkinson 2fae5de245 Merge branch '2.7.x' into 3.0.x
Closes gh-36043
2023-06-23 15:50:02 +01:00
Andy Wilkinson d2966e1cbf Polish "Replace calls to verifyComplete() to avoid indefinite blocking"
See gh-35915
2023-06-23 12:38:12 +01:00
ThomazPassarelli f9da30faf1 Replace calls to verifyComplete() to avoid indefinite blocking
See gh-35915
2023-06-23 12:16:26 +01:00
Phillip Webb 31f218c4e0 Merge branch '3.0.x' into 3.1.x 2023-06-22 00:27:51 -07:00
Phillip Webb 9db3c5a2f7 Polish 2023-06-22 00:24:39 -07:00
Andy Wilkinson b770ffc160 Fully prepare connection when using SSL bundle
Fixes gh-36007
2023-06-21 19:05:44 +01:00
Phillip Webb 5d6a507142 Merge branch '3.0.x' into 3.1.x 2023-06-16 14:35:23 -07:00
Phillip Webb 48e13af8c4 Merge branch '2.7.x' into 3.0.x 2023-06-16 14:34:54 -07:00
Phillip Webb b8d2c279ee Update copyright year of changed files 2023-06-16 14:32:43 -07:00
Phillip Webb baddf4c857 Merge branch '3.0.x' into 3.1.x 2023-06-16 13:54:01 -07:00
Phillip Webb 0fd1c89889 Polish 2023-06-16 13:53:33 -07:00
Phillip Webb 691b549e36 Merge branch '2.7.x' into 3.0.x 2023-06-16 10:18:43 -07:00
Phillip Webb f3f8610539 Polish 2023-06-16 10:17:08 -07:00
Sébastien Deleuze db8dee5aac Refine SpringApplication.Augmented.with Kotlin extension
This commit allows to specify multiple Kotlin classes.

See gh-35784
2023-06-16 14:22:18 +02:00
Andy Wilkinson 1652c27b3c Apply additional sources once when using SpringApplication.from()
Previously, when using SpringApplication.from() any additional
sources configured using with() would be applied to every
SpringApplication that was created within the scope of the call to
run(). This caused problems with Spring Cloud's bootstrap context
where the additional sources would be applied to both the user's
application and to the boostrap context's application.

This commit updates the hook that's used to apply the additional
sources so that it's only applied once. This results in the
additional sources only being added to the first SpringApplication
that is run.

Closes gh-35873
2023-06-16 10:39:20 +01:00
Phillip Webb c192fb85b2 Merge branch '3.0.x' into 3.1.x
Closes gh-35922
2023-06-15 14:26:55 -07:00
Phillip Webb 4c8b93b37d Merge branch '2.7.x' into 3.0.x
Closes gh-35920
2023-06-15 14:26:36 -07:00
Phillip Webb 137f4ee451 Support reporting of custom Log4J2 log levels from the LoggersEndpoint
Support custom Log4J2 log levels by changing `LoggerConfiguration` so
that it can now report levels using a `LevelConfiguration` object
rather than the limited `LogLevel` enum.

The `Log4J2LoggingSystem` class now uses `LevelConfiguration.ofCustom`
for custom logging levels, rather than throwing an exception.

The `LoggersEndpoint` has also been updated so that it can return the
custom logger name.

Fixes gh-35227
2023-06-15 14:03:22 -07:00
Andy Wilkinson 3d9a308053 Merge branch '3.0.x' into 3.1.x
Closes gh-35913
2023-06-15 15:50:07 +01:00
Andy Wilkinson eeea065595 Merge branch '2.7.x' into 3.0.x
Closes gh-35912
2023-06-15 15:49:36 +01:00
Andy Wilkinson e779fb0bc4 Validate constructor bound config props that implement Validator
Closes gh-33669
2023-06-15 15:29:20 +01:00
Scott Frederick 767ec4e22e Support encrypted PKCS8 private keys in SSL bundles
Properties `ssl.bundle.pem.mybundle.keystore.private-key-password`
and `ssl.bundle.pem.mybundle.truststore.private-key-password` have
been added for configuring the password required to decrypt an
encrypted private key.

Only PKCS8 private keys with encryption are supported. PKCS1 and EC
private keys with encryption are much more complex to decrypt, and
are not supported.

Fixes gh-35652
2023-06-09 11:52:36 -05:00
Moritz Halbritter 49597db77d Merge branch '3.0.x'
Closes gh-35764
2023-06-07 08:28:03 +02:00
Moritz Halbritter 9149fc3e77 Merge branch '2.7.x' into 3.0.x
Closes gh-35763
2023-06-07 08:27:19 +02:00
Moritz Halbritter 2927d50d18 Add JavaVersion.TWENTY
Closes gh-35758
2023-06-07 08:23:05 +02:00
Andy Wilkinson 036b982dd7 Start building against Spring Framework 6.0.10 snapshots
This reverts commit bc63c511 as Framework's previous behavior has
been restored.

See gh-35751
2023-06-06 07:36:37 +01:00
Phillip Webb 1669b81af7 Add 'fromApplication' and 'with' Kotlin extension functions
Update `SpringApplicationExtensions.kt` with `fromApplication` and
`with` functions that make `SpringApplication.from(...)` easier to use
with Kotlin.

Fixes gh-35756
2023-06-05 21:49:41 -07:00
Phillip Webb ff35ed4be1 Merge branch '3.0.x' 2023-06-05 17:18:18 -07:00
Phillip Webb f641ce037d Merge branch '2.7.x' into 3.0.x 2023-06-05 17:17:33 -07:00
Phillip Webb 4eda5bd36f Polish 2023-06-05 17:17:07 -07:00
Andy Wilkinson 22e8a41efa Start building against Spring Framework 6.0.10 snapshots
This reverts commit 9d56b419 as Framework's previous behavior has
been restored.

See gh-35739
2023-06-05 20:02:43 +01:00
Andy Wilkinson f0c40a469b Merge branch '3.0.x'
Closes gh-35654
2023-05-26 18:13:14 +01:00
Andy Wilkinson a58e98af05 Fix binding to constructor bound lateinit properties
Closes gh-35603
2023-05-26 18:12:21 +01:00
Andy Wilkinson 127004b4c5 Merge branch '3.0.x'
Closes gh-35647
2023-05-26 10:29:53 +01:00
Andy Wilkinson 5ad0d49ec1 Fix hints for `@Bean` config props that could be constructor bound
Previously, if a `@ConfigurationProperties`-annotated `@Bean` method
returned a type that looked like it could be constructor bound, the
registered runtime hints were incorrect. With only the bean's class
to work with, the hints registrar would incorrectly determine that
the type would be constructor bound and would not register the hints
required for Java bean binding.

This commit updates the registrar to allow the caller to provide a
Bindable which knows both what should be bound and how it should be
bound, thereby allowing the registrar to generate the correct hints.
The tests for the AOT processor have also been updated to remove
duplication of the tests in BindableRuntimeHintsRegistrarTests and
to focus on the contribution creating Bindable instances with the
bind method that is required to produce the correct reflection hints.

Closes gh-35564

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2023-05-26 10:28:49 +01:00
Andy Wilkinson 1d2a41fd1a Merge branch '3.0.x'
Closes gh-35646
2023-05-26 09:41:55 +01:00
Andy Wilkinson eb60cf4988 Remove duplication of BindableRuntimeHintsRegistrarTests
There were several tests in CPBFIAPT that were duplicating tests in
BindableRuntimeHintsRegistrarTests. To test the AOT processor, all
that is really necessary is to assert that the expected types are
found and passed to BindableRuntimeHintsRegistrar. The tests for
BindableRuntimeHintsRegistrar are then responsible for asserting
that the expected hints are generated for the various different
types.

Closes gh-35645
2023-05-26 09:41:09 +01:00
Andy Wilkinson 75f55cc35a Merge branch '3.0.x'
Closes gh-35644
2023-05-26 09:15:05 +01:00
Andy Wilkinson f03f062770 Move BindMethod to context.properties.bind and expose on Bindable
Closes gh-35642

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2023-05-26 09:13:58 +01:00
Andy Wilkinson 604a1e9538 Merge branch '3.0.x'
Closes gh-35641
2023-05-26 08:51:57 +01:00
Phillip Webb 581a32b107 Polish ConfigurationPropertiesBean
Closes gh-35640
2023-05-26 08:51:21 +01:00
Andy Wilkinson fa49e2b6c6 Merge branch '3.0.x'
Closes gh-35639
2023-05-26 08:42:59 +01:00
Phillip Webb bfbae581d7 Extract BindMethodAttribute class
Create a `BindMethodAttribute` class to manage attribute logic.

Closes gh-35638
2023-05-26 08:33:47 +01:00
Phillip Webb 595fc13b34 Future proof SpringApplication.from(...) by returning a wrapper type
Update `SpringApplication.run` to that it returns a wrapper which
provides access to the `ApplicationContext` rather than the
`ApplicationContext` directly.

This should provide a natural place to add more accessors in the future
should we need to.

Closes gh-35451
2023-05-16 14:04:48 -07:00
Phillip Webb 1ca1145875 Test compatibility with SnakeYAML 1.32 and 1.33 versions
Closes gh-35434
2023-05-15 10:15:51 -07:00
Phillip Webb e3ed87d165 Merge branch '3.0.x' 2023-05-12 13:21:52 -07:00
Phillip Webb 92e420a098 Merge branch '2.7.x' into 3.0.x 2023-05-12 13:14:12 -07:00
Phillip Webb 57e45dfb21 Update copyright year of changed files 2023-05-12 13:01:43 -07:00
Phillip Webb ef4b09718c Fix loading of PKCS#8 PEM encoded EC and DSA keys for buildpack
Polish and port support for PKCS#8 PEM encoded EC and DSA keys to
the buildpack code.

See gh-35322
2023-05-12 13:01:30 -07:00
Moritz Halbritter b70399e998 Merge branch '3.0.x' 2023-05-12 12:03:32 +02:00
Moritz Halbritter 7b4056df7f Merge branch '2.7.x' into 3.0.x 2023-05-12 12:00:11 +02:00
Moritz Halbritter 700e89097c Polish
See https://stackoverflow.com/questions/28671903/the-hashsett-removeall-method-is-surprisingly-slow
2023-05-12 11:57:33 +02:00
Andy Wilkinson 2ca787f78c Merge branch '3.0.x'
Closes gh-35400
2023-05-11 13:47:55 +01:00
Andy Wilkinson acafb907f6 Generate hints for all methods that JavaBeanBinder may call
Fixes gh-35397
2023-05-11 13:34:43 +01:00
Andy Wilkinson c254610e4d Improve testing of BindableRuntimeHintsRegistrar
Closes gh-35398
2023-05-11 13:33:47 +01:00
Andy Wilkinson 88866d7baf Merge branch '3.0.x'
Closes gh-35399
2023-05-11 12:11:29 +01:00
Andy Wilkinson 2d08ba18c1 Improve testing of BindableRuntimeHintsRegistrar
Closes gh-35398
2023-05-11 11:59:34 +01:00
Johnny Lim ff9fd1abeb Polish
See gh-35185
2023-05-10 08:31:36 +02:00
Moritz Halbritter 0f1870ee98 Merge branch '3.0.x'
Closes gh-35367
2023-05-09 14:56:30 +02:00
Moritz Halbritter 077f61bd5d Allow loading of YAML files bigger than 3 MB
Closes gh-34743
2023-05-09 14:56:09 +02:00
Moritz Halbritter 0391860ec3 Merge branch '3.0.x'
Closes gh-35365
2023-05-09 14:38:16 +02:00
Moritz Halbritter 086d654f0b Add support for Ed25519 EC keys
See gh-35364
2023-05-09 14:18:08 +02:00
Moritz Halbritter 69ac9bbe6d Merge branch '2.7.x' into 3.0.x
Closes gh-35364
2023-05-09 14:13:04 +02:00
Moritz Halbritter c238049729 Fix loading of PKCS#8 PEM encoded EC and DSA keys
Closes gh-35322
2023-05-09 13:54:23 +02:00
Stephane Nicoll bc63c511e7 Merge branch '3.0.x' 2023-05-08 15:33:52 +02:00
Stephane Nicoll 9d56b419cd Adapt to change in Spring Framework snapshots
Binding to an HashMap now consistently return a LinkedHashMap.
2023-05-08 15:08:02 +02:00
Moritz Halbritter 441ed30ee4 Polish "Replace Mockito argument captors with assertArg"
Co-authored-by: Andy Wilkinson <wilkinsona@vmware.com>

See gh-35015
2023-05-05 15:41:31 +02:00
Moritz Halbritter cf38c2fd37 Update all keystores with new keys and certificates
See gh-35106
2023-05-05 13:30:22 +02:00
Marc Leroux b61834c92d Replace Mockito argument captors with assertArg
See gh-35015
2023-05-05 11:34:55 +02:00
Moritz Halbritter e356a483b6 Add subject alt to JKS store and re-enable OkHttp SSL tests
Closes gh-35106
2023-05-05 11:17:24 +02:00
Stephane Nicoll e6afc490b0 Expose ApplicationContext when using SpringApplication#from
This commit returns the running application context when running an
application via SpringApplication#from so that it is consistent with
the regular SpringApplication#run.

Closes gh-35203
2023-05-04 17:10:10 +02:00
Moritz Halbritter 5f84588b5d Merge branch '3.0.x'
Closes gh-35270
2023-05-04 13:24:07 +02:00
Moritz Halbritter ea4521acdb Merge branch '2.7.x' into 3.0.x
Closes gh-35269
2023-05-04 13:23:44 +02:00
Moritz Halbritter 6ca9f91a8b Fix NPE when gracefully shutting down netty
Closes gh-35264
2023-05-04 11:54:05 +02:00
Phillip Webb a890323758 Merge branch '3.0.x' 2023-05-02 14:52:42 -07:00
Andy Wilkinson 161b54b1d4 Set Logback's root log level to INFO as early as possible
Closes gh-35238
2023-05-02 18:29:52 +01:00
Scott Frederick 428434c873 Polish SslOptions usage
Change getter methods to return arrays, as this is how most client
library usages need the options.

See gh-34814
2023-04-27 16:37:46 -05:00
Andy Wilkinson 9a0b5e0178 Merge branch '3.0.x'
Closes gh-35173
2023-04-26 12:48:50 +01:00
Andy Wilkinson 7ee1622995 Merge branch '2.7.x' into 3.0.x
Closes gh-35172
2023-04-26 12:48:16 +01:00
Andy Wilkinson 6b9bc012a5 Check that BPP and BFPP bean methods won't cause eager initialization
Closes gh-35164
2023-04-26 11:47:03 +01:00
Phillip Webb b5c9e7c06a Polish SslOptions usage
Add helper method and tighten usage so that exceptions are thrown when
options cannot be applied.

See gh-34814
2023-04-25 22:39:47 -07:00
Stephane Nicoll d55cd3b46f Merge branch '3.0.x'
Closes gh-35160
2023-04-25 11:26:31 +02:00
Stephane Nicoll b286e5a0bb Prevent ServletComponentScan to run again with AOT
Closes gh-34563
2023-04-25 11:20:14 +02:00
Phillip Webb e0b03661d4 Merge branch '3.0.x' 2023-04-24 17:16:52 -07:00
Phillip Webb 8a43710173 Merge branch '2.7.x' into 3.0.x 2023-04-24 17:16:43 -07:00
Phillip Webb a707c5e83e Polish "Fix support for default values in banner placeholders"
Reorder methods and add a test to ensure that getPropertyResolvers
can be mutated.

See gh-34764
2023-04-24 17:15:56 -07:00
Phillip Webb c59c8cc674 Change SslOptions to use null for defaults rather than empty sets
Update `SslOptions` so that `null` is used for default values rather
than empty sets. Most libraries use `null` to indicate defaults so
aligning our class makes things easier.

See gh-34814
2023-04-21 16:18:44 -07:00
Phillip Webb 77c468c956 Add test to check SSL RestTemplate requests work against server
Add a test to `AbstractClientHttpRequestFactoriesTests` to ensure
that SSL configuration works when calling a real Tomcat server.

See gh-34810
2023-04-21 14:06:55 -07:00
Phillip Webb 72c1f667f5 Fix @Since javadoc in RestTemplateBuilder
See gh-34810
2023-04-21 14:06:46 -07:00
Scott Frederick b6befd133c Add SSL bundle support to RestTemplateBuilder auto-configuration
Update RestTemplateBuilder auto-configuration so that an SSL can be
configured via an SSL bundle.

Closes gh-34810
2023-04-21 01:13:10 -07:00
Scott Frederick 66db13b962 Refactor web server support to use SslBundles
Update Tomcat, Jetty, Undertow and Netty servers so that an SslBundle
is used to apply SSL configuration. Existing `Ssl` properties are
internally adapted to an `SslBundle` using the `WebServerSslBundle`
class. Additionally, if `Ssl.getBundle()` returns a non-null value the
the `SslBundles` bean will be used to find a registered bundle by name.

See gh-34814
2023-04-21 01:02:47 -07:00
Scott Frederick e3677f7ff6 Add SSL bundle support to spring-boot module
Add classes to support SSL bundles which can be used to apply SSL
settings in a centralized way. An `SslBundle` can be registered with
an `SslBundleRegistry` and obtained from an `SslBundles` instance. The
`DefaultSslBundleRegistry` provides a default in-memory implementation.

Different client libraries often configure SSL in slightly different
ways. To accommodate this, the `SslBundle` provides a layered approach
of obtaining SSL information:

	- `getStores` provides access to the key store and trust stores
	  as well as any required key store password.

	- `getManagers` provides access to the `KeyManagerFactory`,
	  `TrustManagerFactory` as well as the `KeyManger` and
	  `TrustManager` arrays that they create.

	- `createSslContext` provides a convenient way to obtain a new
	  `SSLContext` instance.

In addition, the `SslBundle` also provides details about the key being
used, the protocol to use and any options that should be applied to the
SSL engine.

See gh-34814
2023-04-21 01:01:11 -07:00
Andy Wilkinson 26c98eded9 Upgrade to Tomcat 10.1.8
Closes gh-35095
2023-04-20 12:22:54 +01:00
Andy Wilkinson b80f4cc985 Upgrade to Tomcat 10.1.8
Closes gh-35089
2023-04-20 09:54:24 +01:00
Andy Wilkinson 28b7c583a9 Ensure shutdown hook is registered when a handler is added
Closes gh-34627
2023-04-18 18:20:14 +01:00
Phillip Webb 7728488541 Allow LogLevel to be used easily with commons logging
Add a `LogLevel.log` method that can be used to log a message at
the given level using commons logging.

Closes gh-35024
2023-04-17 01:00:34 -07:00
Mortitz Halbritter 842e17eced Add Docker Compose support
Add `spring-boot-docker-compose` module with service connection
support.

Closes gh-34747

Co-authored-by: Phillip Webb <pwebb@vmware.com>
Co-authored-by: "Andy Wilkinson <wilkinsona@vmware.com>
2023-04-17 01:00:08 -07:00