Commit Graph

9296 Commits (65070573fcbeee34a1a8dabe6e14f09a181810a4)

Author SHA1 Message Date
Scott Frederick 28749e7fbb Update CNB buildpack Java version env variable
Prior to this commit, the build tool plugins set the environment
variable BP_JAVA_VERSION when invoking the CNB builder to set the
version of the JDK/JRE that the builder should use in the created
image.

With CNB API 0.3, the convention changed the name of this environment
variable to BP_JVM_VERSION. This commit updates the build tool
plugins to match the newer convention.

See gh-21273
5 years ago
Scott Frederick 35bc82a693 Use CNB creator all-in-one lifecycle
This commit modifies the buildpack platform invocation logic used by
the build plugins to invoke the single creator lifecycle introduced in
the CNB API 0.3, instead of invoking discrete lifecycle phases
separately. It also removes support for CNB API 0.2.

Fixes gh-21273
5 years ago
Stephane Nicoll d067cc6ae2 Merge branch '2.2.x'
Closes gh-21367
5 years ago
Stephane Nicoll c3eaa6dc54 Merge branch '2.1.x' into 2.2.x
Closes gh-21366
5 years ago
Stephane Nicoll efc9978362 Document use case of splitting auto-configuration and starter
Closes gh-20686
5 years ago
Johnny Lim 665a127448 Fix JarFileTests.getInputStreamWhenClosed()
See gh-21365
5 years ago
Stephane Nicoll 846db6105f Merge branch '2.2.x'
Closes gh-21364
5 years ago
Stephane Nicoll 60ff8bafb5 Polish "Align TestRestTemplate Javadoc with documentation"
See gh-21318
5 years ago
Andrii Hrytsiuk f11c030b71 Align TestRestTemplate Javadoc with documentation
See gh-21318
5 years ago
dreis2211 71c8d5cda1 Update link to new Spring Security docs location
See gh-21040
5 years ago
Phillip Webb 7afd25fc9a Add ConfigurationPropertyCaching support
Add a `ConfigurationPropertyCaching` utility interface that can be
used to control the property source caching.

Prior to this commit, a `ConfigurationPropertySource` that was backed
by a mutable `EnumerablePropertySource` would need to call the
`getPropertyNames()` method each time a property was accessed. Since
this this operation can be expensive, we now provide a way to cache
the results for a specific length of time.

This commit also improves the performance of immutable property sources
by limiting the number of candidates that need to be searched.
Previously, all mapped names would be enumerated. Now, mappings are
grouped by `ConfigurationPropertyName`. This is especially helpful when
the `ConfigurationPropertyName` isn't mapped at all since the hash based
map lookup will be very fast and the resulting mappings will be empty.

Closes gh-20625
5 years ago
Phillip Webb 85e9a73e85 Add hashcode support to ConfigurationPropertyName
Provide a hashcode implementation for `ConfigurationPropertyName` so
that instances can be stored in Map without them all ending up in the
same bucket.

See gh-20625
5 years ago
Phillip Webb 5309912927 Test large property source performance
Add a test to ensure that a large number of property sources that each
contain many items can perform well.

See gh-20625
5 years ago
Phillip Webb 81058cab03 Allow clash in spring.config.name
Remove the recently added slash restriction since Spring Cloud
Config Server needs to support names with slashes.

See gh-21217
5 years ago
Phillip Webb 559c178637 Simplify regex expressions 5 years ago
Stephane Nicoll 09815cc99d Merge branch '2.2.x'
Closes gh-21352
5 years ago
Stephane Nicoll 31f9a965f0 Merge branch '2.1.x' into 2.2.x
Closes gh-21351
5 years ago
Stephane Nicoll 1a4f6df0a3 Upgrade to Spring Ldap 2.3.3.RELEASE
Closes gh-21342
5 years ago
Stephane Nicoll 3ac38fd65e Upgrade to Spring Security 5.3.2.RELEASE
Closes gh-21349
5 years ago
Stephane Nicoll 55a1cd4a34 Upgrade to Spring Security 5.2.4.RELEASE
Closes gh-21348
5 years ago
Stephane Nicoll 66afe280cb Upgrade to Spring Security 5.1.10.RELEASE
Closes gh-21346
5 years ago
Madhura Bhave 8e7f816f48 Merge branch '2.2.x'
Closes gh-21344
5 years ago
Madhura Bhave 5583f64b1f Add tests to verify Jetty's thread pool defaults match server defaults
Closes gh-21213
5 years ago
Madhura Bhave 01404aa27b Merge branch '2.2.x'
Closes gh-21343
5 years ago
Madhura Bhave f29bce657e Harmonize default for server.tomcat.use-relative-redirects
Prior to this commit, the property was a Boolean with a null default.
If it was explicitly set by the user, a context customizer would use
that value to set it on the context. However, if it was not set, the default
wouldn't be tomcat's default but `false` because it was explicitly set to
`false` in `TomcatServletWebServerFactory`. This commit defaults the property
itself to `false` so that the default is more obvious to the user.

Fixes gh-20796
5 years ago
Madhura Bhave be7fe85b55 Polish 5 years ago
Phillip Webb b4963d2463 Fix legacy environment names in isAncestorOf
Fix the `SystemEnvironmentPropertyMapper.isAncestorOf` implementation
to convert names based on their dashed form and to silently ignore
any invalid results.

Closes gh-14479
5 years ago
Andy Wilkinson 70c4baeef6 Merge branch '2.2.x'
Closes gh-21341
5 years ago
Andy Wilkinson 386d678d99 Use Gradle's CreateStartScripts task with 6.4 and later
Fixes gh-20759
5 years ago
Andy Wilkinson 693fa918e2 Tolerate deprecation warnings generated by Gradle 6.4
The warnings will be addressed by gh-20759. CreateBootStartScripts
must be excluded from the classes that are validated by the
ValidatePlugins task. It is invalid, but only for Gradle 6.4. gh-20759
will cause it to only be used with Gradle 6.3 and earlier.

See gh-21329
5 years ago
Stephane Nicoll addaf5ff18 Upgrade to Jetty El 8.5.54
Closes gh-21340
5 years ago
Stephane Nicoll 4dc9aa082f Upgrade to Hibernate 5.4.15.Final
Closes gh-21339
5 years ago
Stephane Nicoll 5bb26bf9db Upgrade to Johnzon Jsonb 1.2.5
Closes gh-21338
5 years ago
Stephane Nicoll cd7048315d Upgrade to Byte Buddy 1.10.10
Closes gh-21337
5 years ago
Stephane Nicoll f4d007222f Upgrade to Dropwizard Metrics 4.1.7
Closes gh-21336
5 years ago
Stephane Nicoll 51740133c3 Upgrade to Saaj Impl 1.5.2
Closes gh-21335
5 years ago
Stephane Nicoll 30a48d55c4 Upgrade to Okhttp3 3.14.8
Closes gh-21334
5 years ago
Stephane Nicoll 5be1f67936 Upgrade to Hazelcast 3.12.7
Closes gh-21333
5 years ago
Stephane Nicoll 938a99bb21 Upgrade to Jackson 2.10.4
Closes gh-21332
5 years ago
Stephane Nicoll 293cd6edb9 Upgrade to Jetty El 8.5.54
Closes gh-21331
5 years ago
Stephane Nicoll 6c8f0a0082 Upgrade to Hibernate 5.3.17.Final
Closes gh-21330
5 years ago
Stephane Nicoll 02aacf4f04 Upgrade to Gradle 6.4
Closes gh-21329
5 years ago
Andy Wilkinson e03cb94190 Merge branch '2.2.x'
Closes gh-21327
5 years ago
Andy Wilkinson 9ba78db865 Allow Undertow to stop when a request is being handled
Previously, unlike embedded Jetty, Netty, and Tomcat, Undertow would
not stop when one of its worker threads was in use. This meant that a
a long-running or stalled request could prevent the application from
shutting down in response to SIGTERM or SIGINT, and SIGTERM would be
required to get the process to exit.

This commit updates the factories for the reactive and servlet
Undertow web server factories to configure Undertow to use a 0ms
shutdown timeout. This aligns it with the behaviour of Jetty, Netty,
and Tomcat. Tests have been introduced to verify the behaviour across
the reactive and servlet variants of all four supported embedded web
servers.

Fixes gh-21319
5 years ago
Andy Wilkinson 1bc41ec336 Stop developmentOnly from removing too much from executable jars and wars
Fixes gh-21288
5 years ago
Phillip Webb 5ae623c43a Polish 'Add Period converter support'
Polish period converter support, primarily by changing
`PeriodStyle` to parse and print periods that include
more than one unit.

See gh-21136
5 years ago
Grubhart dc4d71f91e Add Period converter support
Add converter support for `javax.time.Period` including:

	String -> Period
	Number -> Period
	Period -> String

Period to Number conversion is not supported since `Period` has no
ability to deduce the number of calendar days in the period.

See gh-21136
5 years ago
Madhura Bhave a8f56b57cb Consider legacy environment names in isAncestorOf
Update the `isAncestorOf` method of SpringConfigurationPropertySources
so that legacy names are considered for the system environment.

Prior to this commit, binding a property such as `my.camelCase.prop`
would detect `MY_CAMELCASE_PROP` but not `MY_CAMEL_CASE_PROP` in
the system environment.

Fixes gh-14479

Co-authored-by: Phillip Webb <pwebb@pivotal.io>
5 years ago
Phillip Webb 4a8492d428 Further optimize StringSequence.startsWith
See gh-21259
5 years ago
dreis2211 70ffc70993 Optimize StringSequence.startsWith
See gh-21259
5 years ago
Madhura Bhave 7634901fb3 Return null when getting a logback logger that does not exist
Closes gh-21292
5 years ago
Madhura Bhave f23d0501e4 Merge branch '2.2.x'
Closes gh-21323
5 years ago
Madhura Bhave 43e7ccd620 Detect log4j2-test.* files when using log4J2
Fixes gh-17001
5 years ago
Phillip Webb 3325709a78 Upgrade to JNA 5.5.0
Upgrade JNA to 5.5.0 and only use the jna-platform dependency.

Closes gh-21313
5 years ago
Phillip Webb 365f65d214 Merge branch '2.2.x'
Closes gh-21321
5 years ago
Phillip Webb 98d27db767 Merge branch '2.1.x' into 2.2.x
Closes gh-21320
5 years ago
Phillip Webb df70c42f98 Allow classpath wildcards with Java 11 or above
Update `StaticResourceJars` to catch both `IOException` and
`InvalidPathException` when checking URLs. Prior to this commit only
`IOException` was caught which worked on Java 8 but not Java 11 or
above.

Fixes gh-21312
5 years ago
Phillip Webb 720d23af41 Further restrict configuration wildcard patterns
Extend wildcard restrictions to the `spring.config.name` property. Also
refine exception messages to include the property value.

Closes gh-21217
5 years ago
Katada, Junya bc2a83062b Fix duplicate slashes in URL links
See gh-21108
5 years ago
Andy Wilkinson f6d8c7d23c Simplify ReactiveWebServerApplicationContext.ServerManager
Closes gh-21315
5 years ago
Andy Wilkinson a688ac3f64 Improve testing of ReactiveWebServerApplicationContext
Closes gh-21314
5 years ago
Kyle Hoehns fd46002666 Fix typo for includeLayerTools
See gh-21310
5 years ago
Andy Wilkinson e484246388 Add missing implementation attributes to Shade config
Fixes gh-21304
5 years ago
Andy Wilkinson de1e3c6069 Include empty layers when listing and extracting
Fixes gh-21301
5 years ago
Stephane Nicoll f4ae2b0584 Merge branch '2.2.x'
Closes gh-21305
5 years ago
Stephane Nicoll 8abf658087 Remove dependency management for the Wavefront SDK
Closes gh-21295
5 years ago
Phillip Webb 9486842bad Merge branch '2.2.x'
Closes gh-21294
5 years ago
Phillip Webb 92ef515fbe Fix @DefaultValue PropertyEditor based conversion
Update `ValueObjectBinder` reattempt conversion if the `@DefaultValue`
contains a single element. Prior to this commit, single element
conversion relied on the `ArrayToObjectConverter` which isn't always
available.

Fixes gh-21264
5 years ago
Phillip Webb 07415e1603 Attempt to fix Windows CI test failure 5 years ago
Phillip Webb 57179c0d3d Add InputStreamSourceToByteArrayConverter
Add an `InputStreamSourceToByteArrayConverter` that can be used to
convert from an `InputStreamSource` (such as a `Resource`) to a
byte array.

Closes gh-21285
5 years ago
Phillip Webb d52bf83ab2 Polish 5 years ago
Madhura Bhave 8ec16bd027 Restrict wildcard pattern support for configuration files
This commit restricts how wildcards can be used in search
locations for property files. If a search location contains
a pattern, there must be only one '*' and the location should
end with a '*/'. For search locations that specify the file
name, the pattern should end with '*/<filename>'.

The list of files read from wildcard locations are now sorted
alphabetically according to the absolute path of the file.

Closes gh-21217
5 years ago
Andy Wilkinson 79a2e7f469 Upgrade to Undertow 2.1.0.Final
Closes gh-21278
5 years ago
Andy Wilkinson 1f00938c5a Upgrade to SAAJ Impl 1.5.2
Closes gh-21277
5 years ago
Andy Wilkinson a361583c8c Upgrade to Jetty EL 8.5.54
Closes gh-21276
5 years ago
Andy Wilkinson a7fd02e243 Upgrade to Hazelcast 3.12.7
Closes gh-21275
5 years ago
Andy Wilkinson 2b76f837b4 Upgrade to Byte Buddy 1.10.10
Closes gh-21274
5 years ago
Andy Wilkinson 04c7132eb3 Rename customize to reflect type that it customizes
See gh-20961
5 years ago
Scott Frederick 1c11e163c7 Fix Maven plugin command-line examples
Fixes gh-21078
5 years ago
Andy Wilkinson 83e4bb39b6 Add transaction auto-configuration to @DataMongoTest
Closes gh-20182
5 years ago
Stephane Nicoll 52fbf47e7f Upgrade to Flyway 6.4.1
Closes gh-21269
5 years ago
Stephane Nicoll 6051a27bd7 Upgrade to Spring Integration 5.2.6
Closes gh-20950
5 years ago
Stephane Nicoll 5292b3a693 Upgrade to Spring Integration 5.1.10
Closes gh-20941
5 years ago
dreis2211 dd11b8adba Fix checkstyle violation
See gh-21266
5 years ago
Andy Wilkinson 1abe0f16d0 Apply gridFsDatabase to auto-configured ReactiveGridFsTemplate
Closes gh-18284
5 years ago
Madhura Bhave 6007a71b9c Polish "Add support for customizing RSocketMessageHandler"
See gh-21081
5 years ago
Aarti Gupta 456d6e78fe Add support for customizing RSocketMessageHandler
See gh-21081
5 years ago
Scott Frederick 0cb090766f Fix typos in mock tests data 5 years ago
Scott Frederick a30740f8d2 Separate server properties for message and errors
Prior to this commit, there was a property server.error.include-details
that allowed configuration of the message and errors attributes in a
server error response.

This commit separates the control of the message and errors attributes
into two separate properties named server.error.include-message and
server.error.include-binding-errors. When the message attribute is
excluded from a servlet response, the value is changed from a
hard-coded text value to an empty value.

Fixes gh-20505
5 years ago
Andy Wilkinson d65d951318 Polish "Add support for customizing Spring Session's cookie serializer"
See gh-20961
5 years ago
Vedran Pavic 32454b83b4 Add support for customizing Spring Session's cookie serializer
This commit introduces a CookieSerializerCustomizer callback that
allows the customization of the auto-configured
DefaultCookieSerializer bean. This is particularly useful for
configuring cookie serializer's capabilities, such as SameSite, that
are not supported by the Servlet API and therefore not exposed via
server.servlet.session.cookie.* properties.

See gh-20961
5 years ago
Scott Frederick f3d717e97a Use paketo-buildpacks/builder as default builder
This commit changes the default builder image from
`cloudfoundry/cnb:bionic-platform-api-0.2` to
`gcr.io/paketo-buildpacks/builder:base-platform-api-0.3`. It also
uses a `paketo-buildpacks/builder` image instead of a
`cloudfoundry/cnb` image to test compatibility with lifecycle v2
and uses paketo naming instead of cloudfoundry when mocking builder
interactions.

Some adjustments to lifecycle phases were also made to align more
closely with the pack CLI.

Fixes gh-21066
5 years ago
Andy Wilkinson 14c88b3c04 Upgrade to Spring Integration 5.3.0.RC1
Closes gh-20951
5 years ago
Andy Wilkinson c7a5b72565 Improve compatibility by replacing use of seq with a native for-loop
Closes gh-21068
5 years ago
Andy Wilkinson 76d71e58d7 Upgrade to Spring Kafka 2.5.0.RC1
Closes gh-20953
5 years ago
Stephane Nicoll d16074d8fd Bind and unbind Kafka metrics as consumers and producers come and go
Fixes gh-21008

Co-authored-by: Andy Wilkinson <awilkinson@pivotal.io>
5 years ago
Brian Clozel 692a8c47cc Rename property for registering default Servlet
As a follow-up for gh-21214, this commit renames the property to:

`"server.servlet.register-default-servlet=false"`

Closes gh-21214
5 years ago
Brian Clozel c7c01f8ab4 Add property for registering default Servlet
This commit adds a new configuration property for configuring the
registration of the default Servlet in Servlet containers.

`"server.servlet.default-servlet.registered=false"`

The default of this property is still `true`, as it's been the case in
previous releases.

Closes gh-21214
5 years ago
Andy Wilkinson 2d769e7679 Polish "Stop limiting layer customization to external modules"
See gh-21207
5 years ago
Paddy Drury 98644df64d Stop limiting layer customization to external modules
See gh-21207
5 years ago
dreis2211 c1c90b11b8 Fix some deprecations
See gh-21212
5 years ago
Stephane Nicoll 2eef71cba5 Upgrade to Spring AMQP 2.2.6
Closes gh-20947
5 years ago
Stephane Nicoll 371774c109 Upgrade to WebJars Locator Core 0.45
Closes gh-21255
5 years ago
Stephane Nicoll 2807e64e73 Upgrade to Tomcat 9.0.34
Closes gh-21254
5 years ago
Stephane Nicoll b042af606f Upgrade to Spring WS 3.0.9.RELEASE
Closes gh-21253
5 years ago
Stephane Nicoll 2b969d07d7 Upgrade to SendGrid 4.4.8
Closes gh-21252
5 years ago
Stephane Nicoll 0e2eb69be5 Upgrade to Selenium HtmlUnit 2.39.0
Closes gh-21251
5 years ago
Stephane Nicoll b74d80bed9 Upgrade to Rabbit AMQP Client 5.9.0
Closes gh-21250
5 years ago
Stephane Nicoll 2f5f8f9a34 Upgrade to OkHttp3 3.14.8
Closes gh-21249
5 years ago
Stephane Nicoll 584a8476ee Upgrade to Netty 4.1.49.Final
Closes gh-21248
5 years ago
Stephane Nicoll 4c8c316f88 Upgrade to Neo4j OGM 3.2.11
Closes gh-21247
5 years ago
Stephane Nicoll 98eb325dec Upgrade to MySQL 8.0.20
Closes gh-21246
5 years ago
Stephane Nicoll b1c0b487b9 Upgrade to MongoDB 4.0.2
Closes gh-21245
5 years ago
Stephane Nicoll 3437de0736 Upgrade to Log4j2 2.13.2
Closes gh-21244
5 years ago
Stephane Nicoll 6843b424f3 Upgrade to Liquibase 3.8.9
Closes gh-21243
5 years ago
Stephane Nicoll a8171e4bac Upgrade to JUnit Jupiter 5.6.2
Closes gh-21241
5 years ago
Stephane Nicoll 7df2ab6550 Upgrade to Jetty 9.4.28.v20200408
Closes gh-21240
5 years ago
Stephane Nicoll 5dd58650a2 Upgrade to Jackson Bom 2.11.0
Closes gh-21239
5 years ago
Stephane Nicoll fa5ae5eb7f Upgrade to InfluxDB Java 2.18
Closes gh-21238
5 years ago
Stephane Nicoll 74d6d1d1f2 Upgrade to Infinispan 10.1.6.Final
Closes gh-21237
5 years ago
Stephane Nicoll 613eab764f Upgrade to HtmlUnit 2.39.1
Closes gh-21236
5 years ago
Stephane Nicoll b3f47dc461 Upgrade to HikariCP 3.4.3
Closes gh-21235
5 years ago
Stephane Nicoll f492c8de40 Upgrade to Hibernate Validator 6.1.4.Final
Closes gh-21234
5 years ago
Stephane Nicoll cf48c73b7f Upgrade to Hibernate 5.4.14.Final
Closes gh-21233
5 years ago
Stephane Nicoll d9f18f4930 Upgrade to Groovy 2.5.11
Closes gh-21232
5 years ago
Stephane Nicoll d0be0586a7 Upgrade to Glassfish JAXB 2.3.3
Closes gh-21231
5 years ago
Stephane Nicoll 987404eef8 Upgrade to Flyway 6.3.3
Closes gh-21230
5 years ago
Stephane Nicoll fe1962ad75 Upgrade to Flatten Maven Plugin 1.2.2
Closes gh-21229
5 years ago
Stephane Nicoll 33f1557115 Upgrade to Dropwizard Metrics 4.1.6
Closes gh-21228
5 years ago
Stephane Nicoll 6a83b4d9da Upgrade to Couchbase Client 3.0.3
Closes gh-21227
5 years ago
Stephane Nicoll f3f298d2ad Upgrade to Cassandra Driver 4.6.0
Closes gh-21226
5 years ago
Stephane Nicoll b3f2ff8c16 Upgrade to Caffeine 2.8.2
Closes gh-21225
5 years ago
Stephane Nicoll daa71d1e67 Upgrade to Artemis 2.12.0
Closes gh-21224
5 years ago
Stephane Nicoll a13ebcba88 Upgrade to AppEngine SDK 1.9.80
Closes gh-21223
5 years ago
Stephane Nicoll 2ca5eebd25 Upgrade to Spring Kafka 2.3.8
Closes gh-20952
5 years ago
Stephane Nicoll 8e999a4a9e Upgrade to Spring AMQP 2.2.6
Closes gh-20946
5 years ago
Stephane Nicoll 3e6b62b043 Upgrade to Spring Kafka 2.2.13
Closes gh-20988
5 years ago
Stephane Nicoll 524d316500 Upgrade to Spring AMQP 2.1.14
Closes gh-20939
5 years ago
Stephane Nicoll a18a6e1058 Upgrade to Glassfish Jaxb 2.3.3
Closes gh-21195
5 years ago
Andy Wilkinson d167bb472d Allow base packages to be specified on @AutoConfigurationPackage
Closes gh-19023
5 years ago
Stephane Nicoll ee913503b4 Tolerate Hazelcast 4
This commit updates HazelcastHealthIndicator and
HazelcastCacheMeterBinderProvider so that they work with
Hazelcast 4 while retaining compatibility with Hazelcast 3. Reflection
is used when necessary.

This commit also adds a smoke test that validates those features are
working when Hazelcast 4 is on the classpath.

Closes gh-21169
5 years ago
Andy Wilkinson d63e492906 Add support for enabling ISO date, time, and date-time formatting
Closes gh-20579
5 years ago
Andy Wilkinson 95e5d4e045 Polish "Enable users to provide custom time and datetime formats"
See gh-18772
5 years ago
Daniel Knittl-Frank 69b51cd64d Enable users to provide custom time and datetime formats
Extend WebFlux and WebMvc properties with timeFormat and
dateTimeFormat properties to allow users to customize format of
LocalTime and LocalDateTime instances.

See gh-18772
5 years ago
Stephane Nicoll 6921fdacac Expand configuration class eager filtering to imports
Previously, only root auto-configuration classes could be excluded
eagerly via an AutoConfigurationImportFilter. Any configuration class
loaded as a result of processing a particular auto-configuration were
parsed and checked as usual.

This commit makes use of the `getExclusionFilter` callback to expand
this filter to all candidates that are considered. The annotation
processor has also be expanded to generate metadata for non-root
configuration classes.

Closes gh-12157
5 years ago
Stephane Nicoll 0cbc5a78c7 Upgrade to Micrometer 1.5.0
Closes gh-20833
5 years ago
Andy Wilkinson 69a25e4d80 Stop relying on transitive com.nimbusds:oauth2-oidc-sdk dependency 5 years ago
Andy Wilkinson 77f1e37ade Add dependency management for OAuth2 OIDC SDK
Closes gh-20974
5 years ago
Phillip Webb ad1248e4ec Replace "folder" with "directory"
Consistently use the term "directory" instead of "folder"

Closes gh-21218
5 years ago
Brian Clozel ec871d6752 Fix StatusAggregator static initialization
Prior to this commit, there was a cycle between `StatusAggregator` and
`SimpleStatusAggregator`, which caused a static initialization bug -
depending on which class (the implementation or its interface) was
loaded first.

This commit turns the static field of the `StatusAggregator` interface
into a static method to avoid this problem.

Fixes gh-21211
5 years ago