Commit Graph

3934 Commits

Author SHA1 Message Date
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
Andy Wilkinson 86c988d653 Improve compatibility with SnakeYAML 2.0
Closes gh-34405
2023-03-08 17:25:42 +00:00
Scott Frederick 9f0108496c Consolidate web server SSL configuration 2023-03-01 16:54:09 -06:00
Moritz Halbritter 944862389b Merge branch '3.0.x'
Closes gh-34420
2023-03-01 12:51:23 +01:00
Moritz Halbritter 7ea56a2fdb Merge branch '2.7.x' into 3.0.x
Closes gh-34419
2023-03-01 12:51:15 +01:00
1993heqiang 277784b17d Update logger to use GracefulShutdown.class
See gh-34220
2023-03-01 12:50:31 +01:00
Phillip Webb a7f2be8b14 Merge branch '3.0.x'
Closes gh-34411
2023-02-28 14:59:33 -08:00
Phillip Webb 285097d746 Bind nested record types even if they have an existing value
Update logic in `DefaultBindConstructorProvider` introduced in commit
84b13f0748 so that record types are always bound.

Fixes gh-34407
2023-02-28 14:55:43 -08:00
Andy Wilkinson e21c9090b1 Merge branch '3.0.x'
Closes gh-34375
2023-02-24 16:11:40 +00:00
Andy Wilkinson 72de4a8937 Use ResourceLoader's ClassLoader to load ConfigDataLoaders
Fixes gh-34372
2023-02-24 16:10:49 +00:00
Phillip Webb b20b5edf2a Polish 2023-02-23 13:00:30 -08:00
Andy Wilkinson 982e922c0b Fix formatting 2023-02-23 16:58:03 +00:00
Andy Wilkinson 2c0c89454c Upgrade to Log4j2 2.20.0
Closes gh-34349
2023-02-23 16:50:05 +00:00
Phillip Webb 157091a811 Merge branch '3.0.x' 2023-02-22 18:36:57 -08:00
Phillip Webb 0b15962aca Merge branch '2.7.x' into 3.0.x 2023-02-22 18:36:16 -08:00
Phillip Webb c0cf81dbf0 Merge branch '3.0.x' 2023-02-22 12:40:38 -08:00
Phillip Webb 1132b5e8a5 Merge branch '2.7.x' into 3.0.x 2023-02-22 12:40:23 -08:00
Phillip Webb b126c33195 Enable and fix ImportCandidatesTests 2023-02-22 12:39:00 -08:00
Andy Wilkinson 7aba96d132 Merge branch '3.0.x'
Closes gh-34341
2023-02-22 19:49:14 +00:00
Andy Wilkinson 31b1c3e8ad Replace property placeholders in Logback component class names
Closes gh-34336
2023-02-22 19:47:41 +00:00
Phillip Webb eddee5321f Merge branch '3.0.x' 2023-02-22 00:50:29 -08:00
Phillip Webb e04c09ceae Merge branch '2.7.x' into 3.0.x 2023-02-22 00:50:18 -08:00
Phillip Webb 891ce3bd1b Disable recently renamed tests 2023-02-22 00:49:23 -08:00
Phillip Webb 01e8c42c16 Merge branch '2.7.x' into 3.0.x 2023-02-21 23:55:34 -08:00
Phillip Webb bcfb250da2 Merge branch '3.0.x' 2023-02-21 23:52:02 -08:00
Phillip Webb 66016921c6 Merge branch '2.7.x' into 3.0.x 2023-02-21 23:51:52 -08:00
Phillip Webb 3651ba348d Fix checkstyle test violations 2023-02-21 23:49:56 -08:00
Phillip Webb b07269a018 Merge branch '3.0.x' 2023-02-21 23:20:07 -08:00
Phillip Webb c4de86c244 Merge branch '2.7.x' into 3.0.x 2023-02-21 23:17:57 -08:00
Phillip Webb df5898a146 Reformat code following spring-javaformat upgrade 2023-02-21 22:53:27 -08:00
Andy Wilkinson 7aa27e1167 Merge branch '3.0.x'
Closes gh-34320
2023-02-21 16:36:54 +00:00
Andy Wilkinson bc19e398ba Report Logback configuration errors when running in a native image
Closes gh-34315
2023-02-21 16:10:26 +00:00
Andy Wilkinson 0e67fbc855 Merge branch '3.0.x'
Closes gh-34174
2023-02-13 14:50:48 +00:00
Andy Wilkinson a0de59c209 Fix property binding to Kotlin data class in a native image
Fixes gh-34157
2023-02-13 14:49:04 +00:00
Andy Wilkinson b0c376546d Upgrade to MariaDB 3.1.2
Closes gh-34093
2023-02-06 14:46:07 +00:00
Andy Wilkinson f595b46bd3 Upgrade to HttpClient5 5.2.1
Closes gh-34086
2023-02-06 14:46:05 +00:00
Yubao Liu 6ba5329a79 Allow different log level for FILE and CONSOLE appender
- java.util.logging isn't supported yet

See gh-32076
2023-01-31 14:31:51 +01:00
Luka Hartwig 6d05cf3efb Add Nomad to cloud platforms
See gh-32880
2023-01-31 14:11:08 +01:00
lionel benychou 4f17a9cc9d Allow JoranConfigurators to be passed ahead of time in logback
See gh-33643
2023-01-31 11:13:21 +01:00
Moritz Halbritter 23f1c896c9 Merge branch '3.0.x'
Closes gh-34015
2023-01-31 10:20:36 +01:00
Johnny Lim bc7fc90550 Replace Base64Utils with JDK's Base64
See gh-33967
2023-01-31 10:20:06 +01:00
Phillip Webb 390892f11b Merge branch '3.0.x'
Closes gh-33998
2023-01-26 21:45:57 -08:00
Krzysztof Krason f4af93fb03 Use for loop rather than iterator
See gh-33987
2023-01-26 20:47:35 -08:00
Krzysztof Krason 55a50d565c Use Comparator.comparing
See gh-33987
2023-01-26 20:47:34 -08:00
Krzysztof Krason d3efd7e091 Use try with close
See gh-33987
2023-01-26 20:36:38 -08:00
Krzysztof Krason 0e68cae57f Use instanceof patterns
See gh-33987
2023-01-26 20:36:25 -08:00
Krzysztof Krason 6e46423983 Use diamond operators
See gh-33987
2023-01-26 20:35:08 -08:00
Moritz Halbritter a4e7a8bae0 Use bean name for servlet and filter registrations if name is not set
If the name is set, it is used. If not, the bean name is used. If that's
not set, the convention based name is taken.

Registration failures now throw an IllegalStateException instead of
being logged. DynamicRegistrationBean.setIgnoreRegistrationFailure
can be used to restore the old behavior.

See gh-33911
2023-01-24 09:14:06 +01:00
Phillip Webb 0a50b83c75 Add DataSourceBuilderRuntimeHints
Add hints for DataSourceBuilderRuntime.

Closes gh-33692
2023-01-19 10:52:34 -08:00
Moritz Halbritter ae79c60619 Remove instance suppliers in bean definitions
Remove instance suppliers in bean definitions and depend instead
on reflection. This allows the AOT engine to correctly process
the definitions.

Fixes gh-33763
2023-01-18 19:55:56 -08:00
Phillip Webb 71efc55bf9 Merge branch '2.7.x' 2023-01-18 16:31:53 -08:00
Phillip Webb 7c508fa324 Update copyright year of changed files 2023-01-18 15:37:58 -08:00
Moritz Halbritter 94f4a4396c Merge branch '2.7.x'
Closes gh-33880
2023-01-18 17:35:52 +01:00
Moritz Halbritter e8d809fe65 Replace 'via' with 'over' or 'through' in the documentation
Closes gh-33878
2023-01-18 16:56:42 +01:00
Andy Wilkinson a2f593c15f Merge branch '2.7.x'
Closes gh-33876
2023-01-18 14:02:56 +00:00
Andy Wilkinson b5cebed120 Improve failure description when bean def has no resource description
Closes gh-33765
2023-01-18 13:52:56 +00:00
Moritz Halbritter c939e27925 Only set AWT headless property if not already set
Closes gh-28803
2023-01-18 14:28:26 +01:00
Phillip Webb fad88232b9 Update copyright year of changed files 2023-01-17 10:12:38 -08:00
Phillip Webb a889c539ab Merge branch '2.7.x' 2023-01-17 10:12:25 -08:00
Phillip Webb a0fe8241a7 Update copyright year of changed files 2023-01-17 10:07:03 -08:00
Moritz Halbritter 47c1aa2724 Merge branch '2.7.x'
Closes gh-33771
2023-01-12 09:48:21 +01:00
Moritz Halbritter d6f682da7e Polish JavaBeanBinder
Closes gh-33762
2023-01-12 09:45:36 +01:00
Moritz Halbritter e45b47565c Use Threadlocal.remove instead of .set(null)
See https://github.com/spring-cloud/spring-cloud-sleuth/issues/27 for
reference.
2023-01-11 11:38:48 +01:00
Phillip Webb 84b13f0748 Refine constructor detection logic when binding to existing values
Update `DefaultBindConstructorProvider` so that deduced constructors
are not used if there is an existing value.

Prior to this commit, constructor detection logic was not compatible
with earlier versions of Spring Boot. With Spring Boot 3.0.1, given
a class of the following form:

	@ConfigurationProperties(prefix = "example")
	public class ExampleProperties {

	    @NestedConfigurationProperty
	    private final NestedProperty nested = new NestedProperty(
	    		"Default", "default");

	    public NestedProperty getNested() {
	        return nested;
	    }

	}

If `NestedProperty` has a single constructor with arguments, constructor
binding would be used. In Spring Boot 2.x, setter injection would have
been used.

The updated code now only uses constructor injection if an explicit
`@ConstructorBinding` annotation is present, or if there is no existing
value.

Fixes gh-33409
See gh-33710
2023-01-09 16:57:56 -08:00
Phillip Webb a2ac38e203 Update copyright year of changed files 2023-01-09 15:46:07 -08:00
Phillip Webb 80cfcb71ec Update copyright year of changed files 2023-01-09 15:18:10 -08:00
Krzysztof Krason cf6493f65c Simplify AssertJ assertions and also make them more readable
See gh-33653
2023-01-09 11:10:20 +01:00
Kaveh Shamsi 2d95e4a31e Fix JavaDoc typo in LocalServerPort
See gh-33683
2023-01-09 10:27:40 +01:00
Phillip Webb 2e90b71c30 Do not attempt constructor binding for items with an existing value
Update `DefaultBindConstructorProvider` so that it no longer detects
constructors when the `Bindable` has an existing value. This update
allows us change `ConfigurationPropertiesBindingPostProcessor` and
related classes so that all instances created from `@Bean` methods
are treated as `JAVA_BEAN` bindings and will not be accidentally
re-created using constructor binding.

Fixes gh-33710
2023-01-06 17:23:03 -08:00
Phillip Webb f588793445 Update copyright year of changed files 2022-12-22 01:00:42 -08:00
Phillip Webb 0254619782 Merge branch '2.7.x' 2022-12-22 00:59:40 -08:00
Phillip Webb e4772cf3b7 Update copyright year of changed files 2022-12-22 00:59:32 -08:00
Phillip Webb 2e7ca6f82d Warning if <springProfile> is used in phase 2 model elements
Add `SpringProfileIfNestedWithinSecondPhaseElementSanityChecker` which
will provide a warning if `<springProfile>` is used within a phase 2
model element. This is similar to Logback's own `<if>` warnings.

The `LogbackLoggingSystem` has also been updated so that warning are
printed when present.

Fixes gh-33610
2022-12-22 00:57:59 -08:00
Phillip Webb 2ed512ddb5 Use model.deepMarkAsSkipped in SpringProfileModelHandler
Switch `model.markAsSkipped` to `model.deepMarkAsSkipped` in
`SpringProfileModelHandler`.

Although the current call doesn't appear to be causing issues,
it seems best to align our <springProfile> support with the way
that Logback implements its own `<if>` support.

Closes gh-33618
2022-12-22 00:54:06 -08:00
Phillip Webb c257f2b1d2 Merge branch '2.7.x' 2022-12-21 11:37:41 -08:00
Phillip Webb bc6fc33498 Polish 2022-12-21 10:16:25 -08:00
Moritz Halbritter 08659baeba Polish away public modifier on tests 2022-12-16 16:08:44 +01:00
Moritz Halbritter f36e2ecb7b Use AutoClosables with try-with-resources
Closes gh-33538
2022-12-16 15:43:15 +01:00
Moritz Halbritter 725337f976 Make fields final
Closes gh-33537
2022-12-16 14:28:44 +01:00
Moritz Halbritter 47eb3b11b9 Upgrade Tomcat to 10.1.4
Closes gh-33167
Closes gh-33071
2022-12-12 11:19:30 +01:00
Moritz Halbritter a4779b7859 Merge branch '2.7.x'
Closes gh-33433
2022-12-01 13:33:43 +01:00
Moritz Halbritter 16569099ba Polish "Fix bug in webserver start when loading PKCS#11 KeyStore"
See gh-32179
2022-12-01 12:17:34 +01:00
cdanger 716a839d54 Fix bug in webserver start when loading PKCS#11 KeyStore
See gh-32179
2022-12-01 11:53:51 +01:00
Andy Wilkinson 276b288891 Prevent repeat configuration of DB init bean dependencies
Fixes gh-33374
2022-11-30 12:36:24 +00:00
Moritz Halbritter b3878e84ae Fix bug where using a YAML with anchors couldn't be loaded
Closes gh-33404
2022-11-29 11:21:24 +01:00
Andy Wilkinson c1dab0f9e6 Fix AOT processing of add method with array parameter in Logback model
Fixes gh-33387
2022-11-28 14:09:01 +00:00
Andy Wilkinson b9e57c73b5 Consider Kotlin when checking if parameter names are available
See gh-33182
2022-11-17 12:05:16 +00:00
Phillip Webb a50d1f0bd6 Switch to use BeanUtils.getPropertyDescriptors
Update `BindableRuntimeHintsRegistrar` to use
`BeanUtils.getPropertyDescriptors` rather than `BeanInfoFactory`.

Closes gh-33232
2022-11-16 16:28:08 -08:00
Phillip Webb 2e8d766889 Fix BindableRuntimeHintsRegistrarTests inner class to be static 2022-11-16 13:54:34 -08:00
Phillip Webb d6151858f2 Merge pull request #32851 from tumit
* pr/32851:
  Polish 'Add test for BindableRuntimeHintsRegistrar'
  Add tests for BindableRuntimeHintsRegistrar

Closes gh-32851
2022-11-16 13:41:37 -08:00
Phillip Webb 13a4902018 Polish 'Add test for BindableRuntimeHintsRegistrar'
See gh-32851
2022-11-16 13:37:48 -08:00
tumit 7e424bdf0c Add tests for BindableRuntimeHintsRegistrar
See gh-32851
2022-11-16 13:37:31 -08:00
Andy Wilkinson 421f2fac67 Fail fast when constructor bound and not compiled with -parameters
Closes gh-33182
2022-11-16 21:00:55 +00:00
Andy Wilkinson f39b297677 Merge branch '2.7.x'
Closes gh-33227
2022-11-16 18:09:35 +00:00
Andy Wilkinson 04353e4961 Merge branch '2.6.x' into 2.7.x
Closes gh-33226
2022-11-16 16:41:02 +00:00
Stephane Nicoll d9a93a1514 Update copyright year of changed file
See gh-33108
2022-11-16 10:00:50 +01:00
Johnny Lim 6027508cf7 Polish
See gh-33108
2022-11-16 10:00:36 +01:00
Phillip Webb 28dd6b3215 Merge branch '2.7.x'
Closes gh-33212
2022-11-15 19:33:04 -08:00
Phillip Webb e077060a1b Merge branch '2.6.x' into 2.7.x
Closes gh-33211
2022-11-15 19:32:46 -08:00
Phillip Webb 46acb6fb97 Ignore bridge methods when binding java beans
Update `JavaBeanBinder` so that bridge methods are ignored when binding.

Fixes gh-33105
2022-11-15 19:31:06 -08:00
Stephane Nicoll 2baac78175 Only contribute hints for matching methods
Closes gh-33203
2022-11-15 16:56:09 +01:00
Stephane Nicoll fc17171be6 Upgrade to R2DBC Pool 1.0.0.RELEASE
Closes gh-33196
2022-11-15 15:06:21 +01:00
Andy Wilkinson 55b5a32254 Try to stabilize JBoss Logging provider tests
See gh-33155
2022-11-15 07:35:04 +00:00
Andy Wilkinson 6d8a1c90a4 Revert "Upgrade to Tomcat 10.1.2"
This reverts commit 4ccdfc66d6.

See gh-33167
See gh-33071
2022-11-14 20:15:17 +00:00
Andy Wilkinson 45ec107e2f Correct ClassUtils import
See gh-33155
2022-11-14 20:05:35 +00:00
Andy Wilkinson 4ccdfc66d6 Upgrade to Tomcat 10.1.2
Closes gh-33167
Closes gh-33071
2022-11-14 19:46:33 +00:00
Andy Wilkinson b5bdee24c2 When Logback's in use, route JBoss Logging straight into SLF4J
Prior to this change, when using spring-boot-starter-logging, JBoss
Logging would route like this:

JBoss Logging -> Log4j2 API -> SLF4J -> Logback

This is inefficient as there's no need for it to go via the Log4j2
API.

This commit updates the Logback logging system to configure a system
property that controls JBoss's routing. With this change in place,
JBoss Logging will route like this:

JBoss Logging -> SLF4J -> Logback

Closes gh-33155
2022-11-14 18:06:35 +00:00
Andy Wilkinson a2f65cd887 Consider user classes when finding bind constructor
Update `@Autowired` detection logic to consider all constructors and to
search user classes.

Fixes gh-33061

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2022-11-10 11:05:34 -08:00
Andy Wilkinson ac867c3c40 Polish 2022-11-09 19:32:44 +00:00
Andy Wilkinson 7eb0fe4c89 Contribute reflection hints for JsonComponent inner classes
Closes gh-33089
2022-11-09 19:24:15 +00:00
Johnny Lim ea4f22684d Polish Log4j2 changes
See gh-32742
2022-11-08 13:27:01 +00:00
Johnny Lim 6b385a4f79 Fix configLocationsWithConfigurationFileSystemProperty
See gh-32740
2022-11-08 13:17:22 +00:00
Andy Wilkinson beb1e398c9 Polish "Add reflection hints for Tomcat 10.1"
See gh-33064
2022-11-08 09:56:26 +00:00
Sébastien Deleuze 7972224313 Add reflection hints for Tomcat 10.1
In Tomcat 10.0, reflection hints on Http11AprProtocol were
registering hints on AbstractProtocol as a side effect.

Tomcat 10.1 removed this protocol and related hints, breaking
Http11NioProtocol usage in Spring Boot.

This commit contributes reflection hints for protocol properties
accessed reflectively from org.apache.catalina.connector.Connector.

See gh-33064
2022-11-08 09:56:06 +00:00
Phillip Webb 0bdf7e8af7 Allow spring properties to be used in logback <if> blocks
Reorder `SpringBootJoranConfigurator.addModelHandlerAssociations` so
that handlers are added before calling the super method. Prior to this
commit, handlers were added behind filters which prevented them from
being used in `<if>` blocks.

Fixes gh-33028
2022-11-07 14:45:43 -08:00
Andy Wilkinson b67c427259 Upgrade to Servlet 6.0 and related EE 10 specs
Co-authored-by: Phillip Webb <pwebb@vmware.com>

Closes gh-33036
Closes gh-33037
Closes gh-33038
Closes gh-33039
Closes gh-33040
Closes gh-33041
Closes gh-33042
Closes gh-33043
2022-11-07 17:33:38 +00:00
Andy Wilkinson 651f4f7236 Polish "Polish ImportCandidates"
See gh-33013
2022-11-06 11:30:29 +00:00
biergit d7090b500b Polish ImportCandidates
See gh-33013
2022-11-06 11:30:29 +00:00
Phillip Webb 0fa7dba87a Fix formatting
See gh-33013
2022-11-05 19:32:19 -07:00
biergit 8d98ae3435 Polish
See gh-33013
2022-11-05 18:47:37 -07:00
Phillip Webb 34b4ae8e05 Merge branch '2.7.x'
Closes gh-33019
2022-11-05 16:36:55 -07:00
Phillip Webb 2ab1f49442 Merge branch '2.6.x' into 2.7.x
Closes gh-33018
2022-11-05 16:35:26 -07:00
Phillip Webb caf46043c6 Add @DirtiesUrlFactories annotation
Add `@DirtiesUrlFactories` annotation that can be used to reset URL
factories.

Closes gh-33017
2022-11-05 16:30:27 -07:00
Andy Wilkinson 3fce1e9715 Fix reflection hint registration for @JsonMixins
The hints need to be registered for the mixin not the target of the
mixin.

Closes gh-32929
2022-11-03 17:57:27 +00:00
Andy Wilkinson 89af931c29 Update coordinates of jaybird dependency
See gh-32954
2022-11-02 14:59:31 +00:00
Phillip Webb 2b5a29d514 No longer log hostname during application start
Remove hostname logging since `InetAddress.getLocalHost().getHostName()`
causes a network lookup and can take a long time.

Closes gh-32908
2022-10-31 13:46:47 -07:00
Moritz Halbritter 6a138e1753 Polish 2022-10-31 17:03:16 +01:00
Moritz Halbritter 4fef5291bf Fix build
Commit 29f085bd1a690ff7281e00b3a925e1160850ffbb in Spring Framework
automatically registers hints for enclosing directories. This fixes the
tests to use a contains instead of exact match.
2022-10-31 16:59:15 +01:00
Moritz Halbritter 5e034eab59 Revert "Fix build"
This reverts commit ec0d598ba4.
2022-10-31 16:54:06 +01:00
Moritz Halbritter ec0d598ba4 Fix build
Commit 29f085bd1a690ff7281e00b3a925e1160850ffbb in Spring Framework
automatically registers hints for enclosing directories. This fixes the
tests to expect hints for those directories as well.
2022-10-31 13:34:14 +01:00
Johnny Lim 5067aab552 Polish
See gh-32840
2022-10-27 16:33:14 +02:00
Johnny Lim 7dd083ad69 Polish "Remove spring.xml.ignore flag usages"
See gh-32846
2022-10-27 16:27:29 +02:00
Moritz Halbritter 1f0cf1ac2b Make EmbeddedDatabaseConnection GraalVM compatible
Without those changes, if @AutoConfigureTestDatabase is used, the
native image build process fails with:

  EmbeddedDatabaseConnection was unintentionally initialized at build
  time.

Closes gh-32865
2022-10-27 09:21:19 +02:00
Moritz Halbritter 0985e3d237 Add resource hint for banner.txt
Closes gh-32882
2022-10-26 15:59:50 +02:00
Phillip Webb a59b6cb1f3 Polish 2022-10-25 21:56:53 -07:00
Phillip Webb 4be3218cb6 Merge branch '2.7.x' 2022-10-25 15:48:26 -07:00
Phillip Webb c8676a81de Merge branch '2.6.x' into 2.7.x 2022-10-25 15:48:04 -07:00
Phillip Webb d7ac20cd6c Update copyright year of changed files 2022-10-25 15:47:30 -07:00
Phillip Webb 9505673d6f Ensure application event listeners are always refreshed
Update `EventPublishingRunListener` to ensure that application event
listeners are always refreshed before multicasting initial events.

Prior to this commit, refreshing occurred after multicasting which
meant that listeners added by a different `SpringApplicationRunListener`
would not be picked up. This caused properties from tests that have
`UseMainMethod` set to `ALWAYS` or `WHEN_AVAILABLE` to be missing.

Fixes gh-32860
2022-10-25 15:41:57 -07:00
Phillip Webb 159910b0d9 Polish 2022-10-25 14:49:04 -07:00
Andy Wilkinson e6c37d698f Reinstate support for read timeouts with RestTemplateBuilder
Refactor the way `ClientHttpRequestFactory` instances are created in
order to support setting read timeouts.

Prior to this commit, the reflection based approach would call
`setReadTimeout`. As of Spring Framework 6.0, the
`HttpComponentsClientHttpRequestFactory` class no longer supports this
approach. The timeout must be set on the `HttpClientConnectionManager`
used in the `HttpClient` which can be passed in to the constructor.

In order to support this approach, the `ClientHttpRequestFactory` can
now be created using a `Function` rather than a `Supplier`. The
function accepts a `ClientHttpRequestFactorySettings` which provides
the timeout settings to apply.

The `ClientHttpRequestFactories` utility class provides methods to
create `ClientHttpRequestFactory` instances that respect the settings.
Whenever possible, these are created without using reflection.

Fixes gh-32857

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2022-10-25 14:41:19 -07:00
Andy Wilkinson 99edda735e Polish 2022-10-25 12:57:58 +01:00
Andy Wilkinson b0b2818f0b Improve type discovery in Logback AOT contribution
Logback can infer the Java class to which an XML tag should be mapped
by looking for a setter method on the class to which the parent tag
was mapped. This commits ensures that reflection hints are added for
such classes.

Fixes gh-32839
2022-10-21 16:38:52 +01:00
Phillip Webb ea094ddba6 Fix package tangles caused by ConfigurationProperties hints
Relocate `ConfigurationPropertiesReflectionHintsProcessor` and refactor
it to be a general purpose `BindableRuntimeHintsRegistrar`.

Prior to this commit, `ConfigurationPropertiesReflectionHintsProcessor`
was used to declare binding hints for classes that were bound, but
might be `@ConfigurationProperties`. By moving and renaming the class,
it's now better aligned to the way it's used.

Support for `@NestedConfigurationProperties` has been implemented by
adding a `@Nestable` meta-annotation. This allow us to create the
appropriate hints, without the `Binder` needing to be directly aware of
the `@NestedConfigurationProperties` annotation.

Closes gh-32815
2022-10-20 17:05:54 -07:00
Phillip Webb eb1d72e7b7 Merge branch '2.7.x' 2022-10-20 17:05:49 -07:00
Phillip Webb d8c4aec946 Merge branch '2.6.x' into 2.7.x 2022-10-20 17:04:37 -07:00
Phillip Webb 1a14f39f83 Polish 2022-10-20 17:04:29 -07:00
Phillip Webb 7db93aeb90 Merge branch '2.7.x'
Closes gh-32827
2022-10-20 15:20:15 -07:00
Phillip Webb 1c7bff7cc1 Merge branch '2.6.x' into 2.7.x
Closes gh-32826
2022-10-20 15:01:00 -07:00
Phillip Webb 463a614d27 Fix package tangle between SpringApplication and Environment types
Update `SpringApplication` so that it no longer directly decides the
type of `Environment` that should be created.

Closes gh-32825
2022-10-20 14:51:13 -07:00
Andy Wilkinson 482eb49391 Support <import> in logback.xml during AOT processing
See gh-32756
2022-10-20 14:56:25 +01:00
Sébastien Deleuze 3002779195 Remove LogbackConfigurationAotContribution from native image
Remove `LogbackConfigurationAotContribution` from the reachable
code path from a native image POV.

See gh-32793
2022-10-19 23:49:34 -07:00
Madhura Bhave cedd553b83 Remove error page security filter
Spring Security now re-applies the authorization rules
to the error page by default. Additionally, it configures
RequestAttributeSecurityContextRepository as the default for
stateless applications allowing those applications to have access
to the original authentication during an error dispatch.

Closes gh-31703
2022-10-19 11:46:27 -07:00
Andy Wilkinson e6c69061b5 Upgrade to Jackson 2.14.0-rc2
Closes gh-32771
2022-10-19 11:47:40 +01:00
Andy Wilkinson 391e2f7a26 Make META-INF/spring/logback-pattern-rules repeatable
See gh-32756
2022-10-19 10:04:49 +01:00
Andy Wilkinson a87aca2744 Merge branch '2.7.x'
Closes gh-32782
2022-10-19 10:02:56 +01:00
Andy Wilkinson a19e394ebb Merge branch '2.6.x' into 2.7.x
Closes gh-32781
2022-10-19 10:00:48 +01:00
Henning Poettker 4ed072a06b Upgrade MySQL Connector/J and use new Maven identifiers
See gh-32747
2022-10-19 09:58:32 +01:00
Phillip Webb 8dadf86f93 Merge branch '2.7.x'
Closes gh-32778
2022-10-18 17:15:03 -07:00
Phillip Webb fcaac2b343 Merge branch '2.6.x' into 2.7.x
Closes gh-32777
2022-10-18 17:14:48 -07:00
Phillip Webb 2c7114fa17 Polish 'Use exclamation character for the document separator prefix'
See gh-32521
2022-10-18 17:08:21 -07:00
Guirong Hu 33e379c4a2 Use exclamation character for the document separator prefix
See gh-32521
2022-10-18 17:07:51 -07:00
Scott Frederick 76c7263eff Provide default groupId for AOT processing
Framework requires the `groupId` passed to the AOT processing
to be non-empty, so a default should be used if the build
system does not provide a value.

See gh-32696
2022-10-18 16:39:17 -05:00
Andy Wilkinson 4a76fbf93c Support logback.xml in a native image
Closes gh-32756
2022-10-18 21:37:28 +01:00
Andy Wilkinson 7bae02be2d Adapt to breaking changes to AotProcessor settings
See gh-32696
2022-10-18 17:42:00 +01:00
Moritz Halbritter 8cd9f49fad Add runtime hints for ConfigDataProperties
Closes gh-32608
2022-10-18 14:31:39 +02:00
Andy Wilkinson 93436f29dd Correct assertion in test for member with private constructor
See gh-32639
2022-10-18 10:05:09 +01:00
Phillip Webb a34b1d3c6e Don't detect private constructors on member classes for binding
Refine constructor binding detection logic so that `private`
constructors on member classes are no longer automatically picked for
constructor binding. This provides users a way of signalling that
they wish to use the constructor directly.

Closes gh-32639
2022-10-18 00:59:46 -07:00
Phillip Webb e3df6c5b6f Move @ConstructorBinding annotation and support add default support
Relocate `@ConstructorBinding` from the `boot.context.properties`
package to `boot.context.properties.bind` and update the
`DefaultBindConstructorProvider` to support it.

Closes gh-32660
2022-10-18 00:59:45 -07:00
Moritz Halbritter db248b80bb Add info log message if AOT mode is enabled
Closes gh-32396
2022-10-18 09:40:05 +02:00
Moritz Halbritter 99765e785f Revert "Add info log message if AOT mode is enabled"
This reverts commit 6cb7fb5897.
2022-10-18 09:05:57 +02:00
Moritz Halbritter 6cb7fb5897 Add info log message if AOT mode is enabled
Closes gh-32396
2022-10-17 15:29:38 +02:00
Phillip Webb cec090c32e Polish 'Resolve URLs using Log4J2 mechanisms'
See gh-32735
2022-10-14 10:13:33 -07:00
Ralph Goers 5286785127 Resolve URLs using Log4j2 mechanisms
Update `Log4J2LoggingSystem` to that non file URLs are resolved using
Log4j2's `UrlConnectionFactory` mechanism rather than directly.

See gh-32735
2022-10-14 10:13:30 -07:00
Phillip Webb 5a7964af2b Polish 'Support profile specific Log4j2 configuration'
See gh-32734
2022-10-14 10:12:31 -07:00
Ralph Goers 27ed30fdbf Support profile specific Log4j2 configuration
Add a `SpringProfileArbiter` Log4j2 plugin which allows Log4j2
configuration to be included or skipped based on the active Spring
`Environment` profiles.

See gh-32734
2022-10-14 10:12:27 -07:00
Phillip Webb ed424d3adb Polish 'Add Log4J2 PropertySource backed by the Spring Environment'
See gh-32733
2022-10-14 10:11:25 -07:00
Ralph Goers 4f8a9441c2 Add Log4J2 PropertySource backed by the Spring Environment
Register a new `PropertySource` when initializing Log4j2 so that
properties may be resolved against Spring's Environment.

See gh-32733
2022-10-14 10:11:21 -07:00
Phillip Webb 71f5857363 Polish 'Support Log4J2 string lookups from the Spring Environment'
See gh-32732
2022-10-14 10:10:23 -07:00
Ralph Goers 5228b99b22 Support Log4J2 string lookups from the Spring Environment
Add a Log4j2 `SpringLookup` plugin which can be used to resolve strings
from the Spring Environment.

See gh-32732
2022-10-14 10:10:17 -07:00
Phillip Webb d665441ca9 Polish 'Add Spring Environment to LoggerContext'
See gh-32731
2022-10-14 10:09:02 -07:00
Ralph Goers 05a2bd4585 Add Spring Environment to LoggerContext
Update `Log4J2LoggingSystem` to add the Spring `Environment` to Log4j2's
`LoggerContext`. This allow Log4j2 plugins to access the `Environment`
if they need it.

See gh-32731
2022-10-14 10:08:48 -07:00
Phillip Webb a08a6378f0 Polish 'Support 'log4j.configurationFile' system property'
See gh-32730
2022-10-14 10:06:01 -07:00
Ralph Goers 64eb36b7a1 Support 'log4j.configurationFile' system property
Update `Log4J2LoggingSystem.getStandardConfigLocations()` so that
any configured 'log4j.configurationFile' system property is also
included as a location.

See gh-32730
2022-10-14 10:05:44 -07:00
Scott Frederick fc93e6bf8b Adapt to changes in Spring Framework snapshots
See gh-32696
2022-10-13 15:04:05 -05:00
Scott Frederick a15c5e2498 Merge branch '2.7.x' 2022-10-12 13:47:26 -05:00
Scott Frederick 6c1103cde0 Support PEM formatted elliptic-curve TLS keys
Apply the changes from e0c79ce598
to the `PrivateKeyParser` used for web server SSL configuration.

See gh-32646
2022-10-12 13:25:58 -05:00
Sébastien Deleuze 5b17cacb1f Remove spring.xml.ignore flag usages
This commit is a follow-up of spring-projects/spring-framework#29277.

See gh-32653
2022-10-12 13:27:29 +01:00
Andy Wilkinson 3ab4606584 Make runScripts method of DB initializer more extensible
Closes gh-29137
2022-10-12 11:52:38 +01:00
Andy Wilkinson d351086a06 Adapt to breaking changes to AOT processing entry points
See gh-32550
2022-10-10 22:02:25 +01:00
Andy Wilkinson f2f4a4a40e Space out smart lifecycle phases used for graceful shutdown
Previously, the web server was stopped in the last smart lifecycle
phase with graceful shutdown having begun in the previous phase.
This lack of space between the two phases and after the stop phase
made it hard to for other smart lifecycles to be part of the
graceful shutdown process.

This commit moves stop to 1024 phases before the final phase and
graceful shutdown a further 1024 phases before that, allowing
other smart lifecycles to run between graceful shutdown and stop
and also after stop.

Closes gh-31714
2022-10-06 13:11:29 +01:00
Stephane Nicoll 4ffc421b3c Adapt to Spring Framework API change 2022-10-06 09:58:05 +02:00
Stephane Nicoll e94a1f7988 Replace outcome of JsonMixins scanning in AOT optimized contexts
This commit adds an AOT contribution that replaces the scanning of
@JsonMixin by a mapping in generated code. This makes sure that such
components are found in a native image.

Closes gh-32567
2022-10-05 15:55:33 +02:00
Phillip Webb e0b67889a8 Use Stream.toList instead of Stream.collect when possible
Update code to make use of `Stream.toList()` whenever possible.

Closes gh-28177
2022-10-04 00:29:22 -07:00
Johnny Lim d6cfcd0825 Fix compile errors
Closes gh-32569
2022-10-02 18:38:28 +02:00
Phillip Webb 2c39345794 Merge branch '2.7.x' 2022-09-30 21:18:20 -07:00
Phillip Webb 0e98a577fe Merge branch '2.6.x' into 2.7.x 2022-09-30 21:18:09 -07:00
Phillip Webb 75f4d9e3fd Fix empty @DefaultValue annotation test failures on Java 17
See gh-32559
2022-09-30 21:16:48 -07:00
Phillip Webb bf96816654 Merge branch '2.7.x'
Closes gh-32564
2022-09-30 20:16:53 -07:00
Phillip Webb 1eb0dd5e39 Merge branch '2.6.x' into 2.7.x
Closes gh-32563
2022-09-30 20:16:36 -07:00
Phillip Webb efc431bdc4 Support empty @DefaultValue annotations on aggregates and optional
Update `ValueObjectBinder` to allow an empty `@DefaultValue` to be
used on map, collection, arrays and optional types.

Closes gh-32559
2022-09-30 18:21:54 -07:00
Scott Frederick d25a99692f Replace Spring Boot TestCompiler with Spring Framework's version
See gh-31266
2022-09-30 15:58:11 -05:00
Phillip Webb 8b2fd6a05a Fix formatting 2022-09-30 12:00:14 -07:00
Phillip Webb 63f6d872e0 Test addAotGeneratedInitializerIfNecessary logic
Closes gh-32555
2022-09-30 11:24:04 -07:00
Stephane Nicoll e2dd0ef9a4 Adapt AotProcessor to changes in Spring Framework
Closes gh-32560
2022-09-30 16:47:03 +02:00
Andy Wilkinson 51df7813a5 Remove code deprecated in 2.x and add since and forRemoval attributes
Closes gh-32548
Closes gh-32549
2022-09-30 14:39:05 +01:00
Stephane Nicoll f0e40bb00d Avoid NoSuchMethodError by assigning ApplicationContextInitializer
See gh-32555
2022-09-30 10:54:35 +02:00
Phillip Webb 7a5b61fd19 Replace AotApplicationContextInitializer with Framework version 2022-09-29 16:37:26 -07:00
Brian Clozel a0735eb3fb Migrate remaining usage of httpclient API
This commit migrates our remaining usage of the httpclient 4.x to use
instead httpclient5, now that the 4.x support has been removed in
`RestTemplate`.

Closes gh-32461
2022-09-29 18:55:42 +02:00
Brian Clozel 3ac034e18a Fail when setReadTimeout on httpclient5 request factory
Prior to this commit, the `RestTemplateBuilder` would offer a generic
`setReadTimeout` method to configure the read timeout on the underlying
`ClientHttpRequestFactory`. This would be done in a reflective fashion,
considering that all implementations align with this behavior.

This option cannot be provided for HttpClient5 at the
`ClientHttpRequestFactory` level anymore, so this has been deprecated
in Spring Framework 6.0 and will log a warning. In order to align with
our existing behavior (throwing exceptions if the option cannot be set),
this commit ensures that exceptions are also thrown if the method is
marked as deprecated.

See gh-32461
2022-09-29 18:55:41 +02:00
Brian Clozel 58f3054624 Adapt RestTemplate factory auto-detection
This commit adapts the auto-detection of `ClientHttpRequestFactory` to
look for an httpclient5 class.

See gh-32461
2022-09-29 18:55:41 +02:00
Brian Clozel 5fb2a50ad0 Adapt build dependencies to httpclient5
As htttpclient 4.x is not supported anymore by `RestTemplate`, this
commit changes such dependencies to httpclient5 instead. In some cases,
the httpclient 4.x was transitively brought by a non-Spring dependency.

See gh-32461
2022-09-29 18:55:41 +02:00
Stephane Nicoll 3702c71fc1 Adapt to Spring AOT changes 2022-09-29 18:55:41 +02:00
Andy Wilkinson 17953eeb33 Merge branch '2.7.x'
Closes gh-32544
2022-09-29 11:41:15 +01:00
Andy Wilkinson 3ef633b096 Merge branch '2.6.x' into 2.7.x
Closes gh-32543
2022-09-29 11:39:42 +01:00
Andy Wilkinson 84a25c7dcf Configure Log4j2 classpath overrides consistently
Closes gh-32537
2022-09-29 11:25:21 +01:00
Andy Wilkinson 0bfa9cd704 Upgrade to Logback 1.4 and SLF4J 2.0
Closes gh-12649
2022-09-28 21:14:08 +01:00
Brian Clozel bf5bd4f91c Upgrade to SnakeYAML 1.33
Closes gh-32522
2022-09-27 14:51:04 +02:00
Stephane Nicoll f6f545dbf1 Merge branch '2.7.x'
Closes gh-32510
2022-09-27 08:28:40 +02:00
Stephane Nicoll 33680e5acc Merge branch '2.6.x' into 2.7.x
Closes gh-32509
2022-09-27 08:28:15 +02:00
Stephane Nicoll 0457536d72 Polish "Avoid using JUnit 4 assertions"
See gh-32504
2022-09-27 08:24:03 +02:00
dreis2211 cee353fba6 Avoid using JUnit 4 assertions
See gh-32504
2022-09-27 08:11:47 +02:00
Johnny Lim 7f36fb155d Polish JavaVersionTests.currentJavaVersionNineteen()
See gh-32489
2022-09-23 17:25:12 +02:00
Andy Wilkinson 26eff5ae7a Publish ApplicationPreparedEvent before AOT processing abandons run 2022-09-23 12:02:25 +01:00
Scott Frederick 08022ba86e Remove support for locating imports using spring.factories
With this commit, loading `@AutoConfiguration`,
`@ImportAutoConfiguration`, and `@ManagementContextConfiguration`
classes is supported with `.imports` files only. Support for loading
these classes with `spring.factories` is removed.

Closes gh-29699
2022-09-21 17:34:51 -05:00
Andy Wilkinson 6b8575b001 Fix constructor binding to Kotlin data class with default values
Closes gh-32416
2022-09-21 21:35:47 +01:00
Andy Wilkinson 52522b87f0 Merge branch '2.6.x' into 2.7.x
Closes gh-32393
2022-09-15 11:57:28 +01:00
Andy Wilkinson 77f428498f Compile against SnakeYAML 1.32 and test against older versions
Closes gh-32392
2022-09-15 11:55:44 +01:00
Phillip Webb 4d037c3003 Update SpringBootContextLoader to support AOT
Update `SpringBootContextLoader` so that it now implements the
`AotContextLoader` interface. The `ContextLoaderHook` will abandon
at `contextLoaded` if the test class is being AOT processed.

This commit also introduces a new `AotApplicationContextInitializer`
which allows us to plug-in an alternative AOT application context
listener when the `SpringApplication` is running in test mode.

Closes gh-31965
2022-09-14 22:37:47 -07:00
Phillip Webb d3957dfa3e Provide a public API for SpringApplication hooks
Create a new public SpringApplication Hook API based on the existing
`SpringApplicationRunListener` interface.

The previous package-private `SpringApplicationHooks` class has been
replaced with a public `SpringApplicationHook` interface which acts as
a factory that can create additional `SpringApplicationRunListener`
instances to hook in.

The boolean result from the previous `preRefresh` method has been
replaced with an `AbandonedRunException` which can be thrown from
the `SpringApplicationRunListener`.

Closes gh-32301
2022-09-14 22:34:50 -07:00
Phillip Webb 88913b11ce Allow additional listeners registration in early events
Update `EventPublishingRunListener` so that event listeners may add
additional listeners to the `SpringApplication` during early events.

Prior to this commit, the listeners were collected only once which
meant that if a listener for an `ApplicationStartingEvent` called
`application.addListener(...)`, it would be ignored.

Closes gh-32300
2022-09-14 22:34:39 -07:00
Phillip Webb 6955ed9dcf Make EventPublishingRunListener package private
Closes gh-32299
2022-09-14 13:50:27 -07:00
Stephane Nicoll 6fb70d143d Map R2DBC Pool 'minIdle' property
Closes gh-32332
2022-09-14 13:56:44 +02:00
Stephane Nicoll d4a88041dc Upgrade to R2DBC Bom Borca-SR2
Closes gh-32328
2022-09-14 11:01:19 +02:00
Andy Wilkinson 421943f3cf Add reflection hints for retrieving Undertow's ports
Closes gh-32303
2022-09-13 12:13:06 +01:00
Johnny Lim 4cbabc40b3 Polish MimeMappings changes
See gh-32298
2022-09-12 17:59:06 +02:00
Stephane Nicoll 26cec61f32 Adapt to API change in Spring Framework
See https://github.com/spring-projects/spring-framework/issues/29135
2022-09-12 15:39:03 +02:00
Andy Wilkinson aafceb3868 Merge branch '2.7.x'
Closes gh-32285
2022-09-09 16:47:06 +01:00
Andy Wilkinson f17df7bf30 Merge branch '2.6.x' into 2.7.x
Closes gh-32284
2022-09-09 16:46:43 +01:00
Andy Wilkinson 23c2f73b3f Update tests to allow them to run on Java 19
Closes gh-32280
2022-09-09 16:46:14 +01:00
Phillip Webb 46be4a3f30 Merge branch '2.7.x' 2022-09-08 19:38:18 -07:00
Phillip Webb e88a682220 Merge branch '2.6.x' into 2.7.x 2022-09-08 19:37:52 -07:00
Phillip Webb 85697ac482 Update copyright year of changed files 2022-09-08 19:36:59 -07:00
Phillip Webb 127d320636 Refactor code to work around Eclipse compiler bug
Refactor code to work around the Eclipse compiler bug reported at
https://github.com/eclipse-jdt/eclipse.jdt.core/issues/378

Closes gh-32264
2022-09-08 19:10:30 -07:00
Andy Wilkinson e112657e1a Merge branch '2.7.x'
Closes gh-32261
2022-09-08 15:30:01 +01:00
Andy Wilkinson 020e6dd3f1 Merge branch '2.6.x' into 2.7.x
Closes gh-32260
2022-09-08 15:28:08 +01:00
Andy Wilkinson 280ce6390a Add NINETEEN to JavaVersion enum
Closes gh-32226
2022-09-08 15:25:34 +01:00
Johnny Lim 2273191c03 Polish
See gh-32215
2022-09-07 08:48:08 +02:00
Stephane Nicoll cfdceba687 Merge branch '2.7.x'
Closes gh-32245
2022-09-07 08:45:29 +02:00
Stephane Nicoll 9ef067d589 Merge branch '2.6.x' into 2.7.x
Closes gh-32244
2022-09-07 08:45:19 +02:00
valentine-dev 89e19ddab9 Support lower-case input in PeriodStyle
See gh-32235
2022-09-07 08:40:16 +02:00
Stephane Nicoll e5d0e34268 Adapt to recent changes in Spring Framework
See https://github.com/spring-projects/spring-framework/issues/29082
See https://github.com/spring-projects/spring-framework/issues/28877
2022-09-05 18:23:05 +02:00
Andy Wilkinson 2dd2ca8f08 Merge branch '2.7.x'
Closes gh-32232
2022-09-05 15:42:43 +01:00
Andy Wilkinson 2003cfdd43 Merge branch '2.6.x' into 2.7.x
Closes gh-32231
2022-09-05 15:42:28 +01:00
Andy Wilkinson bc23e70024 Polish "Support lower-case input in DurationStyle"
See gh-32223
2022-09-05 14:53:50 +01:00
valentine-dev c579c9378b Support lower-case input in DurationStyle
See gh-32223
2022-09-05 14:53:29 +01:00
Brian Clozel 0789dd0eb1 Upgrade to SnakeYaml 1.31
Closes gh-32221
2022-09-05 14:30:36 +02:00
Brian Clozel cca5ee8a89 Merge branch '2.6.x' into 2.7.x
Closes gh-32229
2022-09-05 14:24:06 +02:00
Brian Clozel 724f9ebf71 Support SnakeYaml 1.31
This commit keeps the managed dependency for SnakeYaml at 1.29 but
enables forward compatibility for SnakeYaml 1.31.

Closes gh-32228
2022-09-05 14:22:24 +02:00
Andy Wilkinson d6e9a03136 Adapt to synthesized annotation changes in Framework 2022-09-02 17:01:51 +01:00
Phillip Webb 44f1949c5e Polish hint API calls 2022-09-01 19:43:43 -07:00
Sébastien Deleuze 138c55ee11 Refine ConfigurationPropertiesReflectionHintsProcessor
This commit refines ConfigurationPropertiesReflectionHintsProcessor
Java bean properties handling in order to register reflection hints
only for getters and setters, not for all methods.

It avoids including unconditionally method like SpringApplication#load
which in turn avoids shipping BeanDefinitionLoader and related transitively
used classes in the native image.

The gain is significant: it allows to remove up to 700 classes
(when no XML parser is used elsewhere) and to reduce the memory footprint
by 2M of RSS.

Closes gh-32186
2022-09-01 17:34:22 +02:00
Andy Wilkinson 49d3bf1d7f Remove AnsiColors following removal of image banner support
Closes gh-32209
2022-09-01 14:40:24 +01:00
Phillip Webb 973e23dc5e Adapt to upstream Spring Framework changes 2022-08-25 12:12:42 -07:00
Phillip Webb 41c1d9f5c9 Polish 2022-08-25 12:12:38 -07:00
Scott Frederick ada2450483 Reinstate testing for NoSuchMethodFailureAnalyzer parsing on OpenJ9
Closes gh-28785
2022-08-24 15:27:23 -05:00
Stephane Nicoll bb7829791a Adapt to recent changes in RuntimeHints API
See gh-https://github.com/spring-projects/spring-framework/issues/29011
2022-08-24 19:58:29 +02:00
Moritz Halbritter 1db2ad08fa Add classpath checks for runtime hints
This suppresses native-image warnings.
2022-08-24 08:42:33 +02:00
Phillip Webb 6e1b28e6a2 Relocate MimeMapping Tomcat comparison test
See gh-32101
2022-08-23 18:05:39 -07:00
Phillip Webb dd98b88732 Fix 'Align MimeMappings with Tomcat's defaults'
Update COMMON_MAPPINGS to align with the properties file and change
the test so that it consistently works.

See gh-32101
2022-08-23 16:38:31 -07:00
Phillip Webb 86f38e15f0 Polish 'Align MimeMappings with Tomcat's defaults'
Refine `MimeMappings` so that common default mappings are included
by default and the complete set is only loaded when needed.

The `TomcatServletWebServerFactory` has been updated so that if
`TomcatEmbeddedContext` is in use the mime mapping are used
directly rather than being copied to another Map.

The `AbstractServletWebServerFactory` class has also been changed
to use a lazy copy of the mappings. This should mean that the
complete set of properties is only loaded if the user mutates
the mappings.

See gh-32101
2022-08-23 11:37:16 -07:00
Guirong Hu 7728ae4e00 Align MimeMappings with Tomcat's defaults
Update `MimeMappings` to align with the default values used in
Tomcat. The mime mapping are now loaded from a properties file
and a test has been added to ensure that they remain in sync
with Tomcat's defaults.

See gh-32101
2022-08-23 10:15:41 -07:00
Stephane Nicoll e3ddb54cb8 Adapt JPA auto-configuration to PersistenceManagedTypes
This commit exposes a PersistenceManagedTypes bean with the entities
to consider in a typical auto-configuration scenario. This allows the
result of the scanning to be optimized AOT, if necessary.

Closes gh-32119
2022-08-19 16:17:44 +02:00
Stephane Nicoll c41609d01d Polish 2022-08-18 09:44:55 +02:00
Marten Deinum 3b410719e6 Remove use of reflection in MustacheViewResolver
Prior to this commit the MustacheViewResolver used reflection
to instantiate a MustacheView class, which fails when using AOT.
Creating the view without reflection (analogous to the
FreemarkerViewResolver) will fix this without the need for additional
constructor hints.

See gh-32030
2022-08-17 08:00:43 +02:00
Stephane Nicoll 888ccfea2d Adapt to changes in Spring Framework 2022-08-16 16:02:00 +02:00
Phillip Webb bb75f04ce6 Merge branch '2.7.x'
Closes gh-32032
2022-08-09 10:24:18 +01:00
Phillip Webb 9e1a69efc9 Merge branch '2.6.x' into 2.7.x
Closes gh-32031
2022-08-09 10:23:25 +01:00
Phillip Webb 2f85ea3a30 Protect against deeply nested maps
Update BasicJsonParser to fix the deeply nested map protection logic.

Fixes gh-32029
2022-08-09 10:21:13 +01:00
Andy Wilkinson ba93e6c0ed Restore support for Jersey
Closes gh-28637
2022-08-08 15:45:20 +01:00
Stephane Nicoll 1af5994d8f Adapt to API change in Spring Framework
See https://github.com/spring-projects/spring-framework/issues/28927
2022-08-05 10:39:36 +02:00
Phillip Webb dd87cf47a4 Revert SpringBootContextLoader and ErrorPageFilterIntegrationTests changes"
Spring Framework has change the signature so we no longer need the updates.
2022-08-03 15:43:57 +01:00
Andy Wilkinson 2f0dfc341c Merge branch '2.7.x'
Closes gh-31972
2022-08-03 15:20:34 +01:00
Andy Wilkinson 700460c322 Merge branch '2.6.x' into 2.7.x
Closes gh-31971
2022-08-03 14:58:07 +01:00
Andy Wilkinson fa73b73898 Fail build on missing configuration property descriptions
Closes gh-31916
2022-08-03 14:45:42 +01:00
Phillip Webb 080ce92ac8 Adapt ErrorPageFilterIntegrationTests to upstream Framework changes 2022-08-03 13:09:19 +01:00
Phillip Webb db21bafd68 Merge branch '2.7.x'
Closes gh-31968
2022-08-03 12:35:02 +01:00
Phillip Webb cfde1878dd Merge branch '2.6.x' into 2.7.x
Closes gh-31967
2022-08-03 12:34:52 +01:00
Phillip Webb d540eefce0 Set running to false when stop method is called
Update `WebServerStartStopLifecycle` to change the `running` state when
the `stop()` method is called.

Fixes gh-31966
2022-08-03 12:34:37 +01:00
Phillip Webb 040ab4da5b Merge branch '2.7.x'
Closes gh-31964
2022-08-03 11:35:33 +01:00
Phillip Webb c652d3d95b Merge branch '2.6.x' into 2.7.x
Closes gh-31963
2022-08-03 11:34:24 +01:00
Phillip Webb 45ad1557c3 Perform LoggingSystem cleanup after web server shutdown
Update `LoggingApplicationListener` so that logging system cleanup is
performed by a `SmartLifecycle` phased after web server shutdown.

Prior to this commit, cleanup occurred on the `ContextClosedEvent` which
was published before Lifecycle beans were stopped. This meant that any
exceptions output during web server shutdown were not logged.

Fixes gh-9457
2022-08-03 11:34:05 +01:00
Stephane Nicoll c05d0c51b7 Restore constructor binding support with AOT
This commit restores the generation of the BindMethod attribute that
is required at runtime to figure out how to bind a particular
configuration properties target.

It also improves the test to use TestCompiler and assert that the
generated contribution restores the proper behavior for both java
bean and value object binding.

Closes gh-31956
2022-08-02 15:08:48 +02:00
Brian Clozel a8c558a671 Fix build after Spring Framework deprecation
See spring-projects/spring-framework#28905
2022-08-02 15:03:13 +02:00
Brian Clozel 09c753d445 Remove duplicate reflection hints for Logback
Prior to this commit, the Spring Boot team contributed reflection hints
for the default Logback converters for native image compilation. Now
that some of those hints were contributed to the GraalVM reachability
metadata repository, we can safely remove the duplicates.

Closes gh-31959
2022-08-02 14:39:42 +02:00
Andy Wilkinson 0857cae943 Merge branch '2.7.x'
Closes gh-31952
2022-08-01 21:10:36 +01:00
Andy Wilkinson 0dde4278db Merge branch '2.6.x' into 2.7.x
Closes gh-31951
2022-08-01 21:09:37 +01:00
Marc Wrobel 3e0665e791 Fix links in documentations
- Fix broken links
- Use HTTPS where possible,
- Remove spring-security-oauth2-docs as it is no longer used
- Remove https://github.com/ThierrySquirrel/rocketmq-spring-boot-starter.
  This starter is 404 and https://github.com/rocketmq/rocketmq-spring-boot-starter
  hasn't been updated for 4 years.
- Clean up nohttp allowlist.lines.

See gh-31887
2022-08-01 21:07:36 +01:00
Moritz Halbritter ed1f6ad543 Add native-image support for RestTemplateBuilder
Closes gh-31888
2022-08-01 15:18:25 +02:00
Johnny Lim c9c435cdae Polish DataSourceBuilder.derivedFrom()
Fix duplication accidentally introduced in commit
fa43e1f378.

See gh-31928
2022-08-01 08:48:40 +01:00
Stephane Nicoll 0e9f8a5994 Merge branch '2.7.x'
Closes gh-31922
2022-07-29 14:47:20 +02:00
Stephane Nicoll 4806881716 Merge branch '2.6.x' into 2.7.x
Closes gh-31921
2022-07-29 14:35:15 +02:00
Stephane Nicoll 3a5b40645a Restore support for C3P0
Closes gh-31920
2022-07-29 14:07:59 +02:00
Phillip Webb 22144987e9 Update copyright year of changed files 2022-07-29 12:10:03 +01:00
Phillip Webb e08c16dfd6 Polish 2022-07-29 12:10:02 +01:00
Phillip Webb c8735c1540 Remove spring.profiles metadata
See gh-22523
2022-07-28 10:46:46 +01:00
Phillip Webb 49a8e81dc3 Merge branch '2.7.x'
Closes gh-31902
2022-07-28 10:44:57 +01:00
Phillip Webb 5c52882f76 Merge branch '2.6.x' into 2.7.x
Closes gh-31901
2022-07-28 10:44:42 +01:00
Phillip Webb 9a2ad6d42d Remove references to ConfigFileApplicationListener
Update documentation and meta-data to remove referenced to the now
deprecated `ConfigFileApplicationListener` class.

Closes gh-31895
2022-07-28 10:43:48 +01:00
Phillip Webb 7b2bacb272 Merge branch '2.7.x'
Closes gh-31900
2022-07-28 10:37:15 +01:00
Phillip Webb 220c588996 Merge branch '2.6.x' into 2.7.x
Closes gh-31899
2022-07-28 10:37:00 +01:00
Phillip Webb 98627e3d71 Fix spring.beaninfo.ignore SourceType
Fixes gh-31898
2022-07-28 10:36:19 +01:00
Phillip Webb 57e967576e Adapt to upstream Spring Framework AOT changes 2022-07-27 21:44:18 +01:00
Stephane Nicoll 193c1d7acf Adapt to changes in DefaultGenerationContext
See https://github.com/spring-projects/spring-framework/issues/28877
2022-07-26 18:06:46 +02:00
Phillip Webb d6cce1f441 Merge branch '2.7.x' 2022-07-26 16:14:34 +01:00
Phillip Webb fcf12686b7 Merge branch '2.6.x' into 2.7.x 2022-07-26 16:14:18 +01:00
Phillip Webb 9329acdad8 Reduce size of 'repeated-open-array.txt' file
Attempt to fix CI memory issues.
2022-07-26 16:13:44 +01:00
Phillip Webb e08aa84892 Merge branch '2.7.x' 2022-07-26 15:53:33 +01:00
Phillip Webb 96fa4cd63c Merge branch '2.6.x' into 2.7.x 2022-07-26 15:53:17 +01:00
Phillip Webb da91cde304 Protect against deeply nested JSON maps
See gh-31868
2022-07-26 15:52:57 +01:00
Phillip Webb a7ea5dfeda Merge branch '2.7.x'
Closes gh-31874
2022-07-26 15:52:33 +01:00
Phillip Webb 06805f06af Merge branch '2.6.x' into 2.7.x
Closes gh-31873
2022-07-26 15:52:12 +01:00
Phillip Webb 4132414206 Protect against deeply malformed JSON map keys
Fixes gh-31869
2022-07-26 15:47:50 +01:00
Phillip Webb 0b1441f119 Merge branch '2.7.x'
Closes gh-31872
2022-07-26 15:38:25 +01:00
Phillip Webb 466724f77a Merge branch '2.6.x' into 2.7.x
Closes gh-31871
2022-07-26 15:37:41 +01:00
Phillip Webb 6966ebd2a3 Protect against deeply nested JSON lists
Update `BasicJsonParser` to protect against deeply nested JSON lists
in the same way as Jackson.

Fixes gh-31868
2022-07-26 15:25:38 +01:00
Phillip Webb 7377d85096 Merge branch '2.7.x'
Closes gh-31866
2022-07-26 12:18:14 +01:00
Phillip Webb a4ef6a7c5c Merge branch '2.6.x' into 2.7.x
Closes gh-31865
2022-07-26 12:13:16 +01:00
Phillip Webb f8412847dc Update copyright year for "Fix typos in code and documentation"
See gh-31734
2022-07-26 12:08:30 +01:00
Marc Wrobel dbfc6bded4 Fix typos in code and documentation
See gh-31734
2022-07-26 12:08:07 +01:00
Stephane Nicoll a0dd6ef3b1 Revert "Merge pull request #31828 from quaff"
This reverts commit 68fc87bc7f.

See gh-31828
2022-07-25 16:16:51 +02:00
Andy Wilkinson b9b25644af Polish "Take MethodType into account to deduce main application class"
See gh-31828
2022-07-22 19:39:14 +01:00
Yanming Zhou 10a2471979 Take MethodType into account to deduce main application class
See gh-31828
2022-07-22 19:36:30 +01:00
Andy Wilkinson 85c41d6698 Merge branch '2.7.x'
Closes gh-31847
2022-07-22 14:48:29 +01:00
Andy Wilkinson ac3f552dde Merge branch '2.6.x' into 2.7.x
Closes gh-31846
2022-07-22 14:47:45 +01:00
dreis2211 de5834d203 Polish
See gh-31845
2022-07-22 14:46:01 +01:00
Moritz Halbritter 35c49afd97 Generate hints for nested generics in configuration properties
See gh-31708
2022-07-21 16:32:40 +02:00
Olga Maciaszek-Sharma 57dc274284 Switch to Spring Framework SNAPSHOTs
Switch to Spring Framework SNAPSHOTs and adapt to updated APIs.

See gh-31834
2022-07-21 13:42:48 +01:00
Moritz Halbritter a4e84c26f0 Revert "Fix nested type discovery in ConfigurationPropertiesReflectionHintsProcessor"
This reverts commit 785588826e.
2022-07-20 18:04:13 +02:00
Moritz Halbritter 785588826e Fix nested type discovery in ConfigurationPropertiesReflectionHintsProcessor
The old implementation picked up nested types only if they have been
annotated with NestedConfigurationProperty, which not all nested
properties are. Now the processor takes into account all referenced
types. It ignores only types in the java package and interfaces.

This commit also moves some of the tests from
ConfigurationPropertiesBeanFactoryInitializationAotProcessorTests to
ConfigurationPropertiesReflectionHintsProcessorTests for easier
discoverability

Closes gh-31708
2022-07-20 16:39:28 +02:00
Andy Wilkinson 38fedcff34 Polish "Use StackWalker to deduce main application class"
See gh-31701
2022-07-20 14:57:43 +01:00
GGGGGHT ea3fe95881 Use StackWalker to deduce main application class
See gh-31701
2022-07-20 12:37:11 +01:00
Andy Wilkinson c3f3a2a707 Merge branch '2.6.x' into 2.7.x
Closes gh-31810
2022-07-20 11:54:01 +01:00
Andy Wilkinson efdd844c7a Log a warning if determining the app's PID takes too long
Closes gh-31572
2022-07-20 11:53:12 +01:00
Moritz Halbritter e35140d54f Add tests for SpringApplicationRuntimeHints 2022-07-19 16:29:25 +02:00
Moritz Halbritter 750e0aa293 Rename ConfigurationPropertiesReflectionHintsRegistrar 2022-07-19 16:22:08 +02:00
Moritz Halbritter 26741d8044 Register SpringApplication on ReflectionHints for binding
Closes gh-31534
2022-07-19 16:07:10 +02:00
Moritz Halbritter 55bb921a37 Extract TypeProcessor into separate class 2022-07-19 16:06:02 +02:00
Stephane Nicoll 51cba6ec72 Polish "Add AOT support for actuator"
See gh-31671
2022-07-19 13:02:49 +02:00
Moritz Halbritter 584b7d1343 Add AOT support for actuator
Mainly adds reflection hints for the actuator infrastructure.
Also adds the OperationReflectiveProcessor, which registers the
@ReadMethod, @DeleteMethod and @WriteMethod annotated methods for
reflection and adds reflection hints for method return types.

See gh-31671
2022-07-19 13:02:48 +02:00
Phillip Webb 00ec17b418 Fix checkstyle violation
See gh-31323
2022-07-19 11:51:44 +01:00
Chris Bono 8c70acc3c3 Add PropertyMapper.to(...) API designed for immutable instances
Add a new `to` method on `PropertyMapper` designed to work with
immutable instances. The new method takes an existing instance and
a mapping `BiFunction`.

See gh-31323

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2022-07-19 11:28:17 +01:00
Stephane Nicoll 69050a96d2 Merge branch '2.7.x'
Closes gh-31781
2022-07-18 11:49:31 +02:00
Stephane Nicoll 52d4dd9347 Merge branch '2.6.x' into 2.7.x
Closes gh-31780
2022-07-18 11:49:22 +02:00
Stephane Nicoll 4eb5037828 Update copyright year of changed files
See gh-31571
2022-07-18 11:48:35 +02:00
TheoCaldas 869ed4f71a Delimit output value in failure analysis
See gh-31571
2022-07-18 11:36:39 +02:00
Stephane Nicoll f52d00d9fa Merge branch '2.7.x'
Closes gh-31779
2022-07-18 11:30:45 +02:00
Stephane Nicoll 92a7af4038 Merge branch '2.6.x' into 2.7.x
Closes gh-31777
2022-07-18 11:30:36 +02:00
Johnny Lim f591c75ad7 Disable incompatible tests on macOS AArch64
This commit also updates related test support classes.

See gh-31539
2022-07-18 11:25:52 +02:00
Andy Wilkinson ccbd62fd82 Merge branch '2.7.x'
Closes gh-31733
2022-07-14 15:48:51 +01:00
Andy Wilkinson b6b4b3b5b6 Merge branch '2.6.x' into 2.7.x
Closes gh-31732
2022-07-14 15:39:15 +01:00
Andy Wilkinson 9443713c53 Disable Log4j2's shutdown hook with 2.18 and later
Closes gh-31719
2022-07-14 15:38:19 +01:00
Andy Wilkinson 3405a54f9e Exclude Jetty toolchain dependencies in favor of official API artifacts
Closes gh-31720
2022-07-14 13:55:26 +01:00
Andy Wilkinson 88ee31c422 Upgrade to R2DBC 1.0
With the 1.0 release of the SPI, R2DBC's bom is no longer published.
This commit updates Spring Boot's dependency management to no longer
use the bom. Tests have also been updated to adapt to slight changes
in R2DBC's configuration options and their default values.

Closes gh-31702
2022-07-13 12:09:56 +01:00
Stephane Nicoll 67b5f42769 Name RuntimeHintsRegistrar implementations consistently
Closes gh-31695
2022-07-12 19:50:26 +02:00
Oliver Drotbohm b10c57551c Upgrade to Hibernate 6.1.1.Final
This commit makes the following potentially breaking changes:

- Dependency management for modules that do not exist in Hibernate
  6.1 has been removed.
- Hibernate's modules are now in the org.hibernate.orm group. Users
  not using the starter or using modules that are not in the starter
  will have to update their build configuration accordingly.
- spring.jpa.hibernate.use-new-id-generator-mappings has been removed
  as Hibernate no longer supports switching back to the old ID
  generator mappings.

Co-authored-by: Andy Wilkinson <wilkinsona@vmware.com>

Closes gh-31674
2022-07-12 09:36:34 +01:00
Moritz Halbritter beb40eaaf6 Reduce visibility for ConfigDataLocationRuntimeHintsRegistrar 2022-07-12 09:22:19 +02:00
Andy Wilkinson fa43e1f378 Add support for deriving a DataSourceBuilder from a wrapped DataSource
Closes gh-31605
2022-07-08 17:24:37 +01:00
Moritz Halbritter 1e33b1a9da Polish "Add reflection hints for Jackson's basic serializers" 2022-07-08 09:29:34 +02:00
Moritz Halbritter 2dc0936db6 Add reflection hints for Jackson's basic serializers
Closes gh-31537
2022-07-07 16:09:25 +02:00
Moritz Halbritter 9e3c557992 Merge branch '2.7.x' 2022-07-07 15:21:12 +02:00
Moritz Halbritter d4b1c219ab Move test imports from main to test resources
They shouldn't have been in main resources in the first place, this was
an accident.
2022-07-07 15:15:34 +02:00
Moritz Halbritter 8ce3a1e51b Add resource hints for JavaLoggingSystem
See gh-31531
2022-07-07 14:31:17 +02:00
Moritz Halbritter dc5eee8f48 Polish JavaLoggingSystem 2022-07-07 14:20:13 +02:00
Moritz Halbritter 4921954200 Remove --allow-incomplete-classpath from native-image arguments
This parameter is now the default in GraalVM 22.1

Closes gh-31568
2022-07-07 14:01:18 +02:00
Andy Wilkinson eca9343675 Merge branch '2.7.x' 2022-06-26 08:19:34 +01:00
Andy Wilkinson 2f01739e0d Polish since date on new SslStoreProvider API
See gh-31253
2022-06-26 08:18:21 +01:00
Andy Wilkinson 543d9c6e66 Merge branch '2.7.x' 2022-06-25 13:47:45 +01:00
Andy Wilkinson 71526bf44f Polish
See gh-31253
2022-06-25 13:47:25 +01:00
Andy Wilkinson a28ca4594b Merge branch '2.7.x'
Closes gh-31529
2022-06-24 18:01:31 +01:00
Andy Wilkinson 7abc7df7b8 Allow PEM certificates to be used without a key store password
Closes gh-31253
2022-06-24 18:01:20 +01:00
dreis2211 458f989cf3 Use switch expressions where appropriate
See gh-31527
2022-06-24 16:19:28 +01:00
Andy Wilkinson 631b1e0d76 Merge branch '2.7.x'
Closes gh-31526
2022-06-24 13:10:10 +01:00
Andy Wilkinson 1e08f545d0 Merge branch '2.6.x' into 2.7.x
Closes gh-31525
2022-06-24 13:05:06 +01:00
Andy Wilkinson f49b16c645 Upgrade to Spring Java Format 0.0.34
Closes gh-31524
2022-06-24 12:57:52 +01:00
Stephane Nicoll fe39598e81 Adapt to latest API change in Spring Framework
See https://github.com/spring-projects/spring-framework/issues/28585
2022-06-23 16:30:34 +02:00
Andy Wilkinson a55560669b Remove YamlJsonParser
Closes gh-31498
2022-06-22 20:20:28 +01:00
Andy Wilkinson b07d5b0bb1 Merge branch '2.7.x'
Closes gh-31500
2022-06-22 19:50:01 +01:00
Andy Wilkinson 268f13dbd7 Merge branch '2.6.x' into 2.7.x
Closes gh-31499
2022-06-22 19:49:38 +01:00
Andy Wilkinson 522ea0a90e Handle malformed JSON more consistently
Closes gh-31301
2022-06-22 18:31:16 +01:00
Andy Wilkinson 965fbf4494 Polish "Use java.util.HexFormat where appropriate"
See gh-31477
2022-06-21 17:03:26 +01:00
dreis2211 f2101684b7 Use pattern matching for instanceof where appropriate
Closes gh-28181
2022-06-20 18:35:32 +01:00
dreis2211 5db04da275 Use pattern matching for instanceof where appropriate
See gh-31475
2022-06-20 17:55:36 +01:00
dreis2211 3fcb6765b1 Fix checkstyle violation
See gh-31449
2022-06-18 11:06:33 +01:00
Johnny Lim 5d7d0d8047 Use 3.0.0 for Javadoc since tags
See gh-31448
2022-06-17 16:48:58 +02:00
Stephane Nicoll a957efbdc5 Add missing org.yaml.snakeyaml.Yaml reflection hint
Closes gh-31441
2022-06-17 15:50:24 +02:00
Phillip Webb 657fa3e64e Merge branch '2.7.x'
Closes gh-31409
2022-06-16 15:36:29 -07:00
Phillip Webb 7c91ebb1b0 Merge branch '2.6.x' into 2.7.x
Closes gh-31408
2022-06-16 15:36:00 -07:00
Phillip Webb ae6311ddda Prevent Logback from accidentally being used in Log4J2LoggingSystemTests
Update `Log4J2LoggingSystemTests` to exclude Logback and include
'log4j-slf4j-impl'. The `ModifiedClassPathClassLoader` has also been
updated so that it no longer automatically excludes `log4j` artifacts,
instead we now use `@ClassPathExclusions` on the relevant tests.

Fixes gh-19365
2022-06-16 15:35:32 -07:00
Andy Wilkinson 4f3180540c Use Framework's MockSpringFactoriesLoader
Closes gh-31406
2022-06-16 15:40:03 +01:00
Stephane Nicoll d5695c1931 Add resource hints for configuration properties
This commits introduces a RuntimeHintsRegistrar for configuration
properties. By default, it provides the necessary hint to load
application properties and yaml files in default locations.

Closes gh-31311
2022-06-15 10:15:27 +02:00
Stephane Nicoll b536b209ab Refine assertions on exception messages 2022-06-14 18:20:27 +02:00
Stephane Nicoll b0f5fb51fc Adapt to deprecation of NestedServletException 2022-06-14 17:45:31 +02:00
Andy Wilkinson b1ea82c1e2 Merge branch '2.7.x'
Closes gh-31380
2022-06-14 11:17:30 +01:00
Andy Wilkinson 6de4ade0cf Merge branch '2.6.x' into 2.7.x
Closes gh-31379
2022-06-14 11:16:57 +01:00
Andy Wilkinson 5d7cab09b8 Revert BindConverter changes that are now handled by Framework
See gh-28592 and spring-projects/spring-framework#28609

Closes gh-31343
2022-06-14 10:37:35 +01:00
Stephane Nicoll 063e56dbff Polish 2022-06-13 09:44:02 +02:00
Phillip Webb 380776a9b2 Merge branch '2.7.x' 2022-06-10 16:13:50 -07:00
Phillip Webb 7bf82b5349 Merge branch '2.6.x' into 2.7.x 2022-06-10 16:13:35 -07:00
Phillip Webb 63fdd729f5 Refine conversion service type check
Update fix to account for primitive types.

See gh-28592
2022-06-10 16:12:38 -07:00
Phillip Webb 8937924508 Merge branch '2.7.x'
Closes gh-31342
2022-06-10 14:30:28 -07:00
Phillip Webb beb1c15219 Merge branch '2.6.x' into 2.7.x
Closes gh-31341
2022-06-10 14:30:02 -07:00
Phillip Webb 31b0264d94 Ensure conversion service actually converts to the correct type
Update `BindConverter` with a guard to ensure that the resulting object
is the correct type.

Fixes gh-28592
2022-06-10 14:29:25 -07:00
Phillip Webb cb745b4259 Merge branch '2.7.x'
Closes gh-31340
2022-06-10 12:43:38 -07:00
Anthony Vanelverdinghe ed1e7382ab Fix typo in ImportCandidates javadoc
See gh-31277
2022-06-10 12:42:43 -07:00
Phillip Webb c56783064d Support management contexts with AOT
Refactor child management configuration and add AOT generation support.
A new `ChildManagementContextInitializer` class now performs the child
context initialization and also handles AOT processing concerns.

Closes gh-31163
2022-06-08 19:24:46 -07:00
Phillip Webb a729f71cba Polish LogbackRuntimeHintsRegistrar 2022-06-08 19:24:45 -07:00
Stephane Nicoll e30391ca7a Use Application as target for generated code
Closes gh-31274
2022-06-08 14:51:17 +02:00
Stephane Nicoll 8413002bcb Polish
See gh-31247
2022-06-07 20:02:06 +02:00
Andy Wilkinson 869bb91c80 Polish 2022-06-07 17:52:11 +01:00
Stephane Nicoll ac16432fad Add AOT support for immutable ConfigurationProperties bean definitions
This commit introduces a dedicated AotProcessors for immutable
configuration properties beans as their bean definition use an
instance supplier that needs special handling. If such a bean definition
is detected, dedicated code is generated that replicates the behavior
of the instance supplier.

Closes gh-31247
2022-06-07 14:26:35 +02:00
Brian Clozel 3f0c14187a Register runtime hints for @ConfigurationProperties
Prior to this commit, the `@ConfigurationProperties` annotation would
not be registered for reflection hints: this means it could be missing
at runtime in a native image and would not be registered for JDK
proxying - this can fail the synthesized annotation resolution.

This commit ensures that hints are registered for this annotation if
configuration properties are declared in the bean factory.

Fixes gh-31227
2022-06-07 09:50:56 +02:00
Stephane Nicoll c996e4335a Fix singleton handling of ConfigurationProperties hints
Closes gh-31248
2022-06-04 12:29:45 +02:00
Stephane Nicoll 2a405c94a8 Add missing test
Closes gh-31249
2022-06-03 17:41:29 +02:00
Stephane Nicoll fb439b6824 Permit AOT-generated code to run on the JVM as well
This commit updates the codebase so that AOT-generated code can run on
the JVM in an opt-in fashion alongside the existing support of native
images.

When optimizations have been generated, setting the "spring.aot.enabled"
spring property (JVM or spring.properties) allows to opt-in for that
behavior on the JVM.

Closes gh-31244
2022-06-03 10:10:56 +02:00
Phillip Webb 13fba65638 Polish 2022-06-01 09:53:21 -07:00
Phillip Webb 6d80723598 Relocate AotProcessingHook
Relocate `AotProcessingHook` to be an static class of `AotProcessor`.
2022-05-31 15:51:12 -07:00
Andy Wilkinson 4385926df1 Ensure that the main application class can be deduced
Closes gh-31222
2022-05-31 12:06:56 +01:00
Andy Wilkinson 5f54289e97 Allow WebApplicationType to be deduced in a native image
Closes gh-31217
2022-05-31 11:39:42 +01:00
Stephane Nicoll 44a8e91b9e Prevent main method to continue once the AOT context has been optimized
This commit makes sure that processing of the main method upon
completion of SpringApplication#run. Previously, any instructions in
the user's main method were invoked, which is not suitable to build-time
processing.

Closes gh-31219
2022-05-31 12:34:37 +02:00