Commit Graph

18700 Commits

Author SHA1 Message Date
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
Andy Wilkinson 522cb1c0ea Polish deprecation warnings
See gh-32541
2022-09-30 18:51:37 +01:00
Andy Wilkinson dbcb291b7a Polish
See gh-32541
2022-09-30 18:31:01 +01:00
Andy Wilkinson bcb5e84129 Avoid using reflection when creating composite health contributors
Closes gh-32541
2022-09-30 17:03:02 +01: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
Andy Wilkinson 03b3a772c9 Adapt to PathMatchingResourcePatternResolver's behavior being reverted
See spring-projects/spring-framework#29163
2022-09-30 13:08:10 +01:00
Brian Clozel 5b092f5d80 Polish
See gh-32518
2022-09-30 12:52:22 +02:00
Brian Clozel 7f7ecdc7ac Fix documentation build
See gh-32518
2022-09-30 12:18:41 +02:00
Brian Clozel ceb1e5d223 Polish
See gh-32518
2022-09-30 12:16:55 +02:00
Brian Clozel 8b4a20d6cd Use Observation infrastructure for instrumenting WebClient
As of spring-projects/spring-framework#28341, `WebClient` is
instrumented directly for `Observation`.
This commit removes the custom `ExchangeFilterFunction` that previously
instrumented the client for metrics.

As a result, the relevant tag providers are now deprecated and adapted
as `ObservationConvention` for the time being.

Closes gh-32518
2022-09-30 11:24:35 +02: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
Andy Wilkinson 7eb8abbda8 Adapt to PathMatchingResourcePatternResolver now matching root dir
See spring-projects/spring-framework#29163
2022-09-29 18:55:42 +02: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 cc169e7623 Adapt TestRestTemplate to httpclient5 changes
This commit adapts the `TestRestTemplate` implementation to the
httpclient5 API since httpclient 4.x is now unsupported in Spring
Framework.

See 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
Stephane Nicoll d478a020df Start building against Spring Framework 6.0.0-RC1 snapshots
See gh-32550
2022-09-29 18:55:26 +02:00
dreis2211 65ef8fc51a Use ByteArrayOutputStream.toString where possible
See gh-32534
2022-09-29 15:03:24 +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 f10d696c46 Merge branch '2.7.x'
Closes gh-32536
2022-09-29 10:04:45 +01:00
Andy Wilkinson 9f5b7db553 Merge branch '2.6.x' into 2.7.x
Closes gh-32535
2022-09-29 10:04:19 +01:00
Andy Wilkinson be48f37a83 Fix LogbackMetrics auto-config test with Logback and Log4j2 on cp
Closes gh-32533
2022-09-29 10:03:52 +01:00
dreis2211 388134713e Remove unused MockReactiveWebServerFactory
See gh-32526
2022-09-29 09:33:29 +02:00
dreis2211 f0b4a65546 Avoid usage of StringBuffer where possible
See gh-32519
2022-09-29 09:29:10 +02:00
Andy Wilkinson 0bfa9cd704 Upgrade to Logback 1.4 and SLF4J 2.0
Closes gh-12649
2022-09-28 21:14:08 +01:00
Andy Wilkinson 574242b44f Polish "Break cycles between Zipkin senders and HTTP client observation"
See gh-32528
2022-09-28 20:28:11 +01:00
Marcin Grzejszczak b41ed44b60 Break cycles between Zipkin senders and HTTP client observation
Previously, RestTemplateBuilder and WebClient.Builder beans were used
to create the HTTP client for sending out spans. Those same beans are
also instrumented for observability which results in a cycle.

This commit breaks the cycle by not using the application-web
builders to create the RestTemplate and WebClient's used by the Zipkin
senders. Instead, builders are created inline, with new callbacks
being introduced to allow the user to customize these Zipkin-specific
builders.

See gh-32528
2022-09-28 20:11:44 +01:00
Andy Wilkinson 8c74b62888 Polish "Prefer WebClient to RestTemplate for Zipkin's Sender"
See gh-32529
2022-09-28 19:07:27 +01:00
Marcin Grzejszczak cd3b3d468a Prefer WebClient to RestTemplate for Zipkin's Sender
Previously, a Webclient-based sender was only for reactive web
applications, falling back to a RestTemplate-based sender in all
other cases.

With this commit we now prefer to use WebClient if it is available,
irrespective of the web application type. The assumption is that
if the user has WebClient on the classpath, it's either a reactive
web application, or it's a servlet web application or non-web
application but WebClient is preferred.

See gh-32529
2022-09-28 19:04:30 +01:00
Brian Clozel b325edbc55 Polish
See gh-32484
2022-09-27 22:45:46 +02:00
Brian Clozel eac50a8f0c Auto-configure Observation support for RestTemplate
Prior to this commit, Spring Boot would auto-configure a customizer that
instruments `RestTemplate` through a `RestTemplateBuilder`. This would
install a request interceptor that instrumented client exchanges for
producing metrics.

As of spring-projects/spring-framework#28341, the instrumentation is
done at the `RestTemplate` level directly using the `Observation` API.
The `Tag` (now `KeyValue`) extraction, observation name and
instrumentation behavior now lives in the Spring Framework project.

This commit updates the auto-configuration to switch from Boot-specific
Metrics instrumentation to a generic Observation instrumentation.
As a migration path, some configuration properties are deprecated in
favor of the new `management.observations.*` namespace.

Closes gh-32484
2022-09-27 22:19:01 +02:00
Andy Wilkinson 36a4b36ccb Polish "Add support for MDC, Context Propagation (via B3 and W3C), and Baggage"
See gh-32480
2022-09-27 16:47:09 +01:00
Marcin Grzejszczak 52d1436dc6 Add support for MDC, Context Propagation (via B3 and W3C), and Baggage
See gh-32480
2022-09-27 16:47:03 +01:00
Brian Clozel bf5bd4f91c Upgrade to SnakeYAML 1.33
Closes gh-32522
2022-09-27 14:51:04 +02:00
Andy Wilkinson 243075d3b2 Disable DevTools during AOT processing
Closes gh-32517
2022-09-27 11:13:38 +01:00
Andy Wilkinson 5449397463 Require micrometer-tracing-bridge-otel to auto-configure OTel
Closes gh-32503
2022-09-27 09:10:44 +01:00
Andy Wilkinson 6cc3619675 Require micrometer-tracing-bridge-brave to auto-configure Brave
Closes gh-32502
2022-09-27 08:35:22 +01:00
Stephane Nicoll fcafd2abdb Merge branch '2.7.x'
Closes gh-32516
2022-09-27 09:00:57 +02:00
Stephane Nicoll cb191dfec2 Merge branch '2.6.x' into 2.7.x
Closes gh-32515
2022-09-27 08:59:11 +02:00
heqiang 5db6cc1cba Remove redundant @ExtendWith(SpringExtension.class) for sample
See gh-32476
2022-09-27 08:49:46 +02:00
Stephane Nicoll bac1bfcd1c Merge branch '2.7.x'
Closes gh-32514
2022-09-27 08:41:35 +02:00
Stephane Nicoll eb4b0a3f3c Merge branch '2.6.x' into 2.7.x
Closes gh-32513
2022-09-27 08:41:20 +02:00
Stephane Nicoll 8f598f876b Polish "Use non-blocking API in CouchbaseReactiveHealthIndicator"
See gh-32505
2022-09-27 08:34:22 +02:00
Mico Piira f51c4c3df0 Use non-blocking API in CouchbaseReactiveHealthIndicator
See gh-32505
2022-09-27 08:31:57 +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
Andy Wilkinson 0f44e69995 Merge branch '2.7.x'
Closes gh-32500
2022-09-26 13:15:39 +01:00
Andy Wilkinson 5124ae94ae Merge branch '2.6.x' into 2.7.x
Closes gh-32499
2022-09-26 13:15:11 +01:00
Andy Wilkinson cfac7f55a4 Correct annotations on BootBuildImage's file-based inputs
Closes gh-32495
2022-09-26 13:13:16 +01:00
Andy Wilkinson f9b12ca01a Upgrade to Log4j2 2.19.0
Closes gh-32498
2022-09-26 11:04:20 +01:00
Andy Wilkinson 7d583939ff Auto-configure stream template and env irrespective of listener type
Closes gh-32477
2022-09-23 17:28:17 +01:00
Andy Wilkinson 9d30de9966 Exclude all tools projects from the aggregated javadoc
Closes gh-31955
2022-09-23 16:44:57 +01:00
Andy Wilkinson f67db3d9ad Move spring-boot-cli into spring-boot-tools
Closes gh-32492
2022-09-23 16:44:57 +01:00
Johnny Lim 7f36fb155d Polish JavaVersionTests.currentJavaVersionNineteen()
See gh-32489
2022-09-23 17:25:12 +02:00
Andy Wilkinson 4a05230d5d Move spring-boot-properties-migrator into spring-boot-tools
Closes gh-32491
2022-09-23 16:18:30 +01:00
Stephane Nicoll bd8f53a989 Use Native Build Tools new goal name
Closes gh-32482
2022-09-23 14:51:38 +02:00
Andy Wilkinson 26eff5ae7a Publish ApplicationPreparedEvent before AOT processing abandons run 2022-09-23 12:02:25 +01:00
Madhura Bhave afce559050 Remove unused dependency from Maven integration test 2022-09-22 14:07:26 -07:00
Vedran Pavic 230f2cda84 Migrate to AuthorizationFilter in Spring Security auto-config
This commit updates Servlet based Spring Security auto-configuration
to use AuthorizationFilter, which is intended to supersede
FilterSecurityInterceptor.

See gh-31255
2022-09-22 13:53:54 +01:00
Andy Wilkinson 2662490b76 Revert "Upgrade to Dependency Management Plugin 1.1.0-RC1"
This reverts commit 67cc99111c.
2022-09-22 12:30:49 +01:00
Andy Wilkinson 7c7c34cda1 Fix classpath roots of AOT test processing
This was regressed in 6175c4210d so that
each class on the classpath was passed in as a "root". This commit
corrects this so that only the roots are passed to the AOT test
processor.

See gh-32424
2022-09-22 12:30:43 +01:00
Stephane Nicoll ca830240fa Upgrade to Spring Batch 4.3.7
Closes gh-32278
2022-09-22 09:35:29 +02:00
Stephane Nicoll 82763deb93 Upgrade to Spring Batch 4.3.7
Closes gh-32271
2022-09-22 09:26:07 +02:00
Stephane Nicoll c535172cd3 Upgrade to Spring Batch 5.0.0-M6
Closes gh-32237
2022-09-22 08:57:24 +02: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
Scott Frederick f9c341c75a Revert "Generate the AutoConfiguration.imports file from annotations"
This reverts commit da4de7d67d.
2022-09-21 14:50:15 -05:00
Scott Frederick d62d7ca75d Revert "Generate ManagementContextConfiguration.imports file from annotations"
This reverts commit 6b3b0dd3a6.
2022-09-21 14:50:15 -05:00
Scott Frederick 1f53eb7df9 Revert "Sort the contents of generated imports files"
This reverts commit 95e62b7ff8.
2022-09-21 14:50:15 -05:00
Scott Frederick 910e9c9fcc Revert "Fix windows build"
This reverts commit 9fe24fe692.
2022-09-21 14:50:15 -05:00
Brian Clozel 56dcae8a3c Merge branch '2.7.x'
Closes gh-32471
2022-09-21 21:11:29 +02:00
Brian Clozel 8f9323d66c Document "classpath:*" location for GraphQL Schemas
This commit mentions the `"classpath*:graphql/**` schema location in
case the application needs to find schemas across multiple classpath
roots, for example across multiple modules.

Closes gh-31772
2022-09-21 21:09:22 +02:00
Andy Wilkinson b084019d34 Reverse the order of tracing and metrics handlers
Closes gh-32463

Co-authored-by: Jonatan Ivanov <jonatan.ivanov@gmail.com>
2022-09-21 19:05:21 +01:00
Andy Wilkinson 78a64d7f61 Allow DefaultMeterObservationHandler to be replaced by user's bean
Closes gh-32462

Co-authored-by: Jonatan Ivanov <jonatan.ivanov@gmail.com>
2022-09-21 19:05:07 +01:00
Andy Wilkinson 4a80b36160 Configure native image classpath outside of task realisation
Closes gh-32465
2022-09-21 18:14:46 +01:00
Andy Wilkinson 2977373505 Polish "Add property to configure Spring Session Redis repository type"
See gh-32205
2022-09-21 17:16:29 +01:00
Vedran Pavic 3093380e35 Add property to configure Spring Session Redis repository type
With Spring Session moving to RedisSessionRepository as the preferred
session repository, Spring Boot auto-configuration should make it
possible to easily switch back to the previous default
(RedisIndexedSessionRepository).

This commit introduces spring.session.redis.repository configuration
property that allows selecting the desired Redis-backed session
repository implementation.

See gh-32205
2022-09-21 17:13:58 +01:00
Andy Wilkinson 6175c4210d Fix skipping of processAot when there is no main source
See gh-32424
2022-09-21 14:57:54 +01:00
Andy Wilkinson 67cc99111c Upgrade to Dependency Management Plugin 1.1.0-RC1
Closes gh-32460
2022-09-21 10:59:05 +01:00
Andy Wilkinson cb614cfee9 Merge branch '2.7.x' 2022-09-21 10:07:22 +01:00
Andy Wilkinson 3620959dca Upgrade to Dependency Management Plugin 1.0.14.RELEASE
Closes gh-32459
2022-09-21 10:06:56 +01:00
Andy Wilkinson 9d30a0a5b6 Upgrade to Dependency Management Plugin 1.0.14.RELEASE
Closes gh-32458
2022-09-21 10:04:03 +01:00
Stephane Nicoll 5752eb9a40 Upgrade to Maven Jar Plugin 3.3.0
Closes gh-32456
2022-09-21 08:30:25 +02:00
Stephane Nicoll 7c8ec4d228 Upgrade to Byte Buddy 1.12.17
Closes gh-32455
2022-09-21 08:30:22 +02:00
Stephane Nicoll 4e5e42c2e1 Upgrade to Spring Integration 6.0.0-M5
Closes gh-32096
2022-09-21 08:25:58 +02:00
Stephane Nicoll 89b547565e Upgrade to Spring Session 2022.0.0-M3
Closes gh-32427
2022-09-21 08:25:31 +02:00
Stephane Nicoll 8bca178b83 Upgrade to Byte Buddy 1.12.17
Closes gh-32454
2022-09-21 08:24:27 +02:00
Stephane Nicoll d5debb1d3d Upgrade to Spring Integration 5.5.15
Closes gh-32453
2022-09-21 08:22:25 +02:00
Stephane Nicoll b3db0768c0 Upgrade to Spring GraphQL 1.0.2
Closes gh-32426
2022-09-21 08:21:56 +02:00
Stephane Nicoll 4e18da99a3 Upgrade to Spring Integration 5.5.15
Closes gh-32452
2022-09-21 08:18:15 +02:00
Phillip Webb 374176a680 Upgrade to MariaDB 3.0.8
Closes gh-32451
2022-09-20 14:19:12 -07:00