Commit Graph

9898 Commits (2642b040732de02e0e4ae88d2f16df902bc6226f)

Author SHA1 Message Date
Andy Wilkinson 2642b04073 Merge branch '2.3.x'
Closes gh-22327
4 years ago
dreis2211 60e7146326 Reduce started threads in OnClassCondition
Prior to this commit, OnClassCondition started a thread even if the number of
passed autoconfiguration class candidates never exceeded 1. This commit only
starts a thread if there is actually work to split in half.

See gh-22294
4 years ago
Andy Wilkinson 2af550ef73 Avoid using reflection with manual bean definitions
Closes gh-22318
4 years ago
Andy Wilkinson e3b839a48a Merge branch '2.3.x'
Closes gh-22326
4 years ago
Andy Wilkinson 196d20537a Merge branch '2.2.x' into 2.3.x
Closes gh-22325
4 years ago
Andy Wilkinson 9558779dd4 Replace ConfigurationPropertiesBeanDefinitionValidator with a FailureAnalyzer
Previously, regular bean definitions for configuration properties classes
that attempt to use constructor binding were detected in a bean factory
post-processor, ConfigurationPropertiesBeanDefinitionValidator. This
validation examined every standard bean definition and failed if it
encountered one for a class that should have used constructor binding.
There were two downsides to this approach:

1. Reflection used to identify if the bean should be using constructor
   binding triggered class loading that could prevent subsequent
   instrumentation by a load-time weaver.
2. The cost of the validation was incurred when there was no
   misconfiguration to report.

This commit replaces ConfigurationPropertiesBeanDefinitionValidator
with a failure analyzer. This failure analyzer only runs once a failure
has occurred and the application context is not going to complete
refresh. This avoids causing problems with subsequent instrumentation
and also avoids the cost of validation and error reporting unless there
is an error.

Fixes gh-20798
4 years ago
Andy Wilkinson 2643c60c5a Merge branch '2.3.x'
Closes gh-22316
4 years ago
Andy Wilkinson f52cdf10b3 Update WebServerInitEvent docs to reflect ordering w.r.t. refresh
Closes gh-22277
4 years ago
Andy Wilkinson 3d2f67f0be Merge branch '2.3.x'
Closes gh-22304
4 years ago
Andy Wilkinson f18b657ff9 Fix handling of DOCKER_HOST that begins with unix://
Fixes gh-22300
4 years ago
Brian Clozel 0f264b68e8 Add option to configure PathPatternParser
As of Spring Framework 5.3, it is now possible to use `PathPatternParser`
to parse and match request mapping path patterns, as an alternative to
the current default `AntPathMatcher`.

This new implementation has been used for a while in Spring WebFlux and
it’s been designed for consistency and performance.

This commit introduces a new configuration property for opting-in this
new variant:

`spring.mvc.pathmatch.matching-strategy=path_pattern_parser`

The default option is still `ant_path_matcher` for now, but we might
change the default in future versions since Spring Framework considers
it the best choice for modern applications.

There are several behavior differences with this new variant:

* double wildcards `"**"` are rejected when used in the middle patterns,
this is only allowed as the last matching segment in a pattern.

* it is incompatible with some path matching options, like
suffix-pattern, registered-suffix-pattern or configuring a Servlet
prefix on the `DispatcherServlet` (`spring.mvc.servlet.path=/test`)

This commit introduces two `FailureAnalyzer` implementations to guide
developers when facing those issues.

Closes gh-21694
4 years ago
Andy Wilkinson 2d91a096db Merge branch '2.3.x'
Closes gh-22293
4 years ago
Andy Wilkinson 794ded5286 Test the Gradle plugin against Gradle 6.5.1
Closes gh-22292
4 years ago
Andy Wilkinson f0e4149da4 Merge branch '2.3.x'
Closes gh-22287
4 years ago
Stephane Nicoll 0eb2fcb9c0 Upgrade to Infinispan 11.0.1.Final
This commit upgrade to Infinispan 11.0.1.Final and update dependency
management to use the bom now that it declares all the modules that
the project ships. See gh-19791

Closes gh-22286
4 years ago
Andy Wilkinson df67816e55 Try to make ConfigurationPropertySourcesTests perf tests more robust
Previously, the tests used absolute values to verify that the work
had completed sufficiently quickly. This led to flaky tests in
environments where the performance can be variable such as CI.

This commit tries to make the tests more robust by comparing the
performance to a baseline and requiring it to be twice as fast.

Closes gh-22137
4 years ago
Andy Wilkinson c258cec814 Merge branch '2.3.x'
Closes gh-22285
4 years ago
Andy Wilkinson b24f17b35c Rework spring-boot-docs to be a full-blown java project
Previously, spring-boot-docs used the java-base-plugin and then added
configuration on top. This has proven to be error prone, with the most
recent problem being that the tests were not being compiled and run.

This commit changes approach and applies the java plugin to the project
instead of the java-base plugin. Now, rather than adding the necessary
configuration to the base, the unwanted pieces of the java plugin's
configuration – specifically the jar and javadoc tasks – are disabled
instead. The DeployedPlugin has also been updated so that it does not
create a publication from the java component for projects that have a
disabled jar task.

Closes gh-22284
4 years ago
Stephane Nicoll 429a504bbe Polish "Allow data unit to be specified on the constructor parameter"
See gh-21746
4 years ago
Vlad Kisel ba70b79651 Allow data unit to be specified on the constructor parameter
See gh-21746
4 years ago
Andy Wilkinson 553d58a234 Merge branch '2.3.x'
Closes gh-22283
4 years ago
Andy Wilkinson c765df6e5d Merge branch '2.2.x' into 2.3.x
Closes gh-22282
4 years ago
Andy Wilkinson afa5b12bdb Make reactive Jetty auto-config back off without jetty-servlet
Fixes gh-22275
4 years ago
Andy Wilkinson cb7f99ad72 Polish "Measure with nanoseconds in HttpExchangeTracer"
See gh-22266
4 years ago
dreis2211 d72f5139f1 Measure with nanoseconds in HttpExchangeTracer
See gh-22266
4 years ago
Scott Frederick 6b7640ba2e Merge branch '2.3.x'
Closes gh-22272
4 years ago
Scott Frederick 1e2176b6c9 Improve Redis URL validation
This commit improves the validation of URLs provided in the property
'spring.redis.url' used to auto-configure a Spring Data Redis
connection. In particular, only the URL schemes 'redis://' and
'rediss://' are allowed, and any other scheme will result in a
configuration error. A failure analyzer is also provided to improve
diagnostics for common mis-configurations detected by this validation.

Fixes gh-21999
4 years ago
Andy Wilkinson 1f1c6fd3ea Merge branch '2.3.x'
Closes gh-22265
4 years ago
Andy Wilkinson d84aeef529 Merge branch '2.2.x' into 2.3.x
Closes gh-22264
4 years ago
Andy Wilkinson 66987533d1 Link to application properties section from externalized config list
Closes gh-22262
4 years ago
Andy Wilkinson 3e33b6c854 Merge branch '2.3.x'
Closes gh-22263
4 years ago
Andy Wilkinson 502ccb6586 Honor spring.autoconfigure.exclude in test slices
Previously, the import selector for `@ImportAutoConfiguration` did not
consider the spring.autoconfigure.exclude property when determining
which auto-configurations to exclude. This meant that tests using a
slice that included a particular auto-configuration would include it
even if the application's configuration excluded it via
spring.autoconfigure.exclude. Confusingly, this could result in a
sliced test using an auto-configuration that would be excluded in a
broader `@SpringBootTest`.

This commit updates the ImportAutoConfigurationImportSelector to
consider the spring.autoconfigure.exclude property so that sliced tests
will use a subset of the auto-configurations that a `@SpringBootTest`
would use.

Fixes gh-21736
4 years ago
Johnny Lim df34d26f4f Replace ReflectionUtils with AssertJ's extracting()
See gh-22261
4 years ago
Andy Wilkinson 9894be8f1e Merge branch '2.3.x'
Closes gh-22255
4 years ago
Andy Wilkinson 0af8c35428 Auto-configure Rabbit CF with credentials provider and refresh service
Closes gh-22016
4 years ago
Johnny Lim 4ab4c61761 Polish ErrorPage.equals()
See gh-22240
4 years ago
Andy Wilkinson 1b85ce0769 Streamline OAuth2 resource server auto-config class conditions
Fixes gh-22233
4 years ago
Andy Wilkinson 247fd59422 Merge branch '2.3.x'
Closes gh-22252
4 years ago
Andy Wilkinson b8bc219b25 Merge branch '2.2.x' into 2.3.x
Closes gh-22251
4 years ago
Andy Wilkinson 4e79bb1cff Disable bean method proxying in SpringBootJdbcConfiguration
Closes gh-22231
4 years ago
Andy Wilkinson 29b69bfbdf Merge branch '2.3.x'
Closes gh-22250
4 years ago
Andy Wilkinson da319f5f59 Merge branch '2.2.x' into 2.3.x
Closes gh-22249
4 years ago
Andy Wilkinson 14f24dbecc Merge branch '2.1.x' into 2.2.x
Closes gh-22248
4 years ago
Andy Wilkinson 26f591264c Fix handling of NestedServletException with no root cause
Fixes gh-22169
4 years ago
dreis2211 507eb9498b Use Class.getDeclaredConstructor().newInstance()
See gh-21913
4 years ago
Andy Wilkinson fbfb7df3e1 Merge branch '2.3.x'
Closes gh-22247
4 years ago
Andy Wilkinson 24e1a1dddf Merge branch '2.2.x' into 2.3.x
Closes gh-22246
4 years ago
Andy Wilkinson a8d3f9af31 Polish "Rename NoneOfNestedConditions to NoneNestedConditions in example docs"
See gh-22207
4 years ago
Clayton Walker 7fee70a625 Rename NoneOfNestedConditions to NoneNestedConditions in example docs
See gh-22207
4 years ago
Andy Wilkinson 7864a7da52 Polish "Remove redundant bitwise operations"
See gh-22212
4 years ago