Commit Graph

3563 Commits

Author SHA1 Message Date
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
Phillip Webb e2262284f1 Add SpringApplication.from(...) support
Add a `SpringApplication.from(...)` method which can be used
to augment an existing application with addition `@Configuration`.

Closes gh-35019
2023-04-17 00:47:59 -07:00
Phillip Webb e9a198a68f Merge branch '3.0.x' 2023-04-12 22:16:35 -07:00
Phillip Webb 7fea4c84b4 Update copyright year of changed files 2023-04-12 22:16:07 -07:00
Stephane Nicoll 0806743966 Merge branch '3.0.x'
Closes gh-34935
2023-04-11 15:46:03 +02:00
Stephane Nicoll 7ee55817b3 Update copyright header of changed file
See gh-34868
2023-04-11 15:39:20 +02:00
kdomo 6728a08219 Use banner location constant
See gh-34868
2023-04-11 15:39:00 +02:00
Stephane Nicoll 6cf08a36da Polish "Add support for additional colors in Log4j2 and Logback"
See gh-34749
2023-04-05 15:00:12 +02:00
Abhijeet Mishra 35994bbd74 Add support for additional colors in Log4j2 and Logback
See gh-34749
2023-04-05 14:49:03 +02:00
Andy Wilkinson cd5d923910 Merge branch '3.0.x'
Closes gh-34793
2023-03-28 10:22:12 +01:00
Andy Wilkinson b2e6db544b Merge branch '2.7.x' into 3.0.x
Closes gh-34792
2023-03-28 10:21:47 +01:00
Andy Wilkinson 2d280bb967 Polish "Fix support for default values in banner placeholders"
See gh-34764
2023-03-28 09:57:22 +01:00
Krzysztof Krason 5c01aa719c Fix support for default values in banner placeholders
See gh-34764
2023-03-28 09:53:52 +01:00
Phillip Webb c0f59a1f61 Merge branch '3.0.x' 2023-03-23 23:04:35 -07:00
Phillip Webb d3cdaf9d01 Merge branch '2.7.x' into 3.0.x 2023-03-23 23:04:01 -07:00
Mortitz Halbritter dcb4f3cf97 Polish 2023-03-23 23:03:46 -07:00
Phillip Webb 3dbc3a1943 Merge branch '3.0.x' 2023-03-23 23:01:32 -07:00
Phillip Webb b6777524f7 Merge branch '2.7.x' into 3.0.x 2023-03-23 23:00:50 -07:00
Mortitz Halbritter bece347987 Polish 2023-03-23 22:59:26 -07:00
Andy Wilkinson f13d6e6862 Revert "Merge pull request #33643 from libetl"
This reverts commit 25e8f2d575, reversing
changes made to e5bc9a2fcb.

Unfortunately, upon additional review we realised that these changes
should not have been accepted. They're a partial implementation of
support for programmatically configuring Logback, implemented in a way
that only works during AOT processing and also potentially makes it
harder for us to implement full support in the future.

Closes gh-34361
2023-03-23 13:39:54 +00:00
Andy Wilkinson 73ee97b095 Upgrade to Logback 1.4.6
This commit includes a change to stop using an API in Logback that
has been deprecated without replacement. As Logback now only supports
.xml configuration files, it would only ever have thrown an
exception. The call to the API has been replaced with thrown an
exception directly.

Closes gh-34686
2023-03-21 12:04:35 +00:00
Andy Wilkinson f6add35f8b Upgrade to Tomcat 10.1.7
Closes gh-34674
2023-03-21 10:07:21 +00:00
Andy Wilkinson 6fdc6fa619 Upgrade to Logback 1.4.6
This commit includes a change to stop using an API in Logback that
has been deprecated without replacement. As Logback now only supports
.xml configuration files, it would only ever have thrown an
exception. The call to the API has been replaced with thrown an
exception directly.

Closes gh-34670
2023-03-21 09:36:31 +00:00
Andy Wilkinson 4be288f672 Upgrade to Tomcat 9.0.73
Closes gh-34655
2023-03-20 21:07:57 +00:00
Phillip Webb 7f5dc1cde5 Merge branch '3.0.x'
Closes gh-34618
2023-03-15 15:10:01 -07:00
Phillip Webb dcb41b03a0 Merge branch '2.7.x' into 3.0.x
Closes gh-34617
2023-03-15 15:09:44 -07:00
Phillip Webb aea57fbd41 Consider the underling file in equals/hashcode
Update `StandardConfigDataResource` so that the underlying file is
considered in equals/hashcode. Prior to this commit, if the classpath
included `.` then the same resource could be loaded twice. Once via
a `ClassPathResource` and once via a `FileSystemResource`.

Fixes gh-34212
2023-03-15 13:52:10 -07:00
Phillip Webb 837ea04cd1 Merge branch '3.0.x'
Closes gh-34611
2023-03-14 18:04:39 -07:00
Phillip Webb 5d21c3616f Don't treat Kotlin data classes as immutable
Unlike records, Kotlin data classes are mutable and so we can't apply
the same constructor detection logic.

Fixes gh-34500
2023-03-14 18:03:15 -07:00
Andy Wilkinson daba3ce52b Upgrade to Tomcat 10.1.7
Closes gh-34582
2023-03-10 19:32:15 +00:00
Andy Wilkinson 656a309ea0 Merge branch '3.0.x'
Closes gh-34516
2023-03-08 17:42:12 +00:00
Andy Wilkinson 3945c48290 Merge branch '2.7.x' into 3.0.x
Closes gh-34515
2023-03-08 17:28:10 +00:00