Previously, the JSON-B auto-configuration would be enabled when the JSON-B API was
on the classpath. This led to a failure if there was no implementation available.
The JSON-B API loads an implementation using the service loader. This commit updates
the auto-configuration to be conditional on the presence of a
META-INF/services/javax.json.bind.spi.JsonbProvider file on the classpath.
Closes gh-14675
Add a `spring.messages.reloadable` configuration property which can be
used to auto-configure a `ReloadableResourceBundleMessageSource` rather
than a `ResourceBundleMessageSource`.
Closes gh-13377
This commit fixes missing descriptions and default values when
applicable for `management.server.ssl`, `server.compression`,
`server.http2`, `server.servlet.jsp`, `server.servlet.session` and
`server.ssl`.
Those nested namespace are managed by a POJO that is declared outside
of the module of the target @ConfigurationProperties type using it. As
a result, the annotation processor has no access to the source model and
can't extract the description and the default value, if any.
This commit migrates the misleading field-level Javadoc to manual meta
data for the time being.
Closes gh-14669
Previously, when an EntityManagerFactory was being initialized
synchronously, the DataSourceSchemaCreatedEvent would be published
during its initialization. This meant that an application listener that
depends on the EntityManagerFactory would create a dependency cycle if
it was a potential recipient of the event.
For the synchronous case, this commit moves the publication of the
event so that it occurs after the initialisation of the entity manager
factory. This allows an application listener that is a potential
recipient of the DataSourceSchemaCreatedEvent to depend on the
EntityManagerFactory without creating a cycle.
Closes gh-14651
Add `Neo4jBookmarkManagementConfiguration` which provides an instance
of `BookmarkManager` if necessary and Caffeine cache is on the
classpath. Depending on the kind of application, the `BookmarkManager`
will be request scoped or singleton, as recommended by Spring Data
Neo4j.
See gh-14568
While MongoDB 3.6.7 has been released, 3.6.5 is the latest version that's supported
by the version of Embedded Mongo that we're currently using.
Closes gh-14476
Add `FilteringSpringBootCondition` base class and refactor the existing
`OnClassCondition` to use it. Also update the `match` method so that
the `autoConfigurationClasses` array may include `null` elements.
See gh-13328
Fix description for `prefetch`; remove reference to transactions since
the direct container does not support transactionSize.
Also fix `transactionSize` to just reference acks; autoConfiguration
doesn't support enabling transactions.
Closes gh-14569
Generally speaking, methods on configuration classes will only be called once
and, therefore, it should be safe to hold a reference to a Stream for later
one-time usage. However, there are some scenarios in Spring Fu where functional
registration results in an attempt being made to use a Stream more than use.
This commit protects against multiple use by storing the ObjectProvider and
getting a new ordered Stream each time it's needed.
Closes gh-14467
This commit makes sure that "org.quartz.scheduler.instanceName" is
honoured if set. Previously, "spring.quartz.scheduler-name" had a
default value and was always set. As a result, `SchedulerFactoryBean`
did not take the quartz property into account.
Closes gh-14243
While MongoDB 3.6.7 has been released, 3.6.5 is the latest version that's supported
by the version of Embedded Mongo that we're currently using.
Closes gh-14476
Spring Framework now requires that all nested configuration classes
are contained within a `@Component` class (see SPR-16839). This means
that our abstract `JpaBaseConfiguration` class should have a
`@Configuration` annotation.
Closes gh-14480
Non web applications might want to leverage
`ReactiveClientRegistrationRepository` and
`ServerOAuth2AuthorizedClientRepository` to configure `WebClient`.
Closes gh-14350
We now use com.mongodb.MongoClientSettings to configure the reactive
MongoDB driver. This is a breaking change as
MongoClientSettingsBuilderCustomizer and user-provided
MongoClientSettings beans referenced the package the settings type
from com.mongodb.async.client.
MongoClient.getSettings() is deprecated and still in use within tests
until a replacement is available.
See gh-14318
This commit also refactors OAuth2 client properties. With
the added support for authorization_code clients, client
registrations are now divided into `login` and `authorization_code`.
An environment post processor is used for backward compatibility with
old Open ID Connect login clients.
Closes gh-13812
Next to com.mongodb.MongoClient the MongoDB Java driver offers the
com.mongodb.client.MongoClient as entry point for database and
collection operations. Spring Data MongoDB supports
c.m.client.MongoClient via its MongoDbFactory using
SimpleMongoClientDbFactory.
The MongoAutoConfiguration now backs off if any of those two clients is
already defined in the Application context allowing
MongoDataAutoConfiguration to pick up the users driver implementation of
choice.
See gh-14176
This commit fixes the ordering between `CacheAutoConfiguration` and
`HibernateJpaAutoConfiguration` so that the auto-configured
`CacheManager` is configured before Hibernate starts.
Closes gh-14181
This commit introduces a subclass of `DispatcherHandler` that only
considers the current context when looking for WebFlux infrastructure
beans.
This avoids issues where a child context (e.g. with Actuator) picks up
infrastructure beans from the parent context and exposes all endpoints
instead of getting only the ones from the current context.
Closes gh-14012
This commits restores the behaviour of Spring Boot 1.x with regards to
the "trace" request param used to add the stacktrace to the model.
This was inadvertently changed so that the stacktrace would be added
if the parameter wasn't set.
Closes gh-14171
This commit adds a new auto-configuration choice for
`ClientHttpConnector`, this time using the Jetty RS HTTP client library
if available.
This is the best choice in case the application runs on a Jetty reactive
server, as both client and server will share resources.
Closes gh-14005