Commit Graph

3185 Commits

Author SHA1 Message Date
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
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