Previously, if Jetty's thread pool was misconfigured, the Server would
still start successfully.
When it is started, the Server examines its Connectors to determine
how many threads are required. If its thread pool does not meet the
Connectors' requirements, an IllegalStateException is thrown and the
Server fails to start. However, JettyEmbeddedServletContainer
temporarily removes the Server's Connectors while it is being started
so that requests will not be accepted until the application is ready.
This has the unwanted side-effect of causing a misconfigured thread
pool to go undetected as the Connectors' thread requirements are not
taken into consideration.
The verification of the thread pool configuration and the starting of
the Connectors is done in the Server's doStart() method which has
three steps that are of interest:
1. Verify the Server's thread pool configuration
2. Start any managed beans that have been added to the Server
3. Start the Server's Connectors.
To allow the thread pool configuration to be verified while still
preventing the Connectors from being started, the Connectors need to
be removed in step 2. This is achieved by registering a managed bean
with the Server that nulls out the Server's Connectors as part of its
doStart() method.
Closes gh-8917
This commit makes sure to apply Atomikos defaults also adds a test that
validates Atomikos defaults are consistent.
As a side effect of that, `threadedTwoPhaseCommit` is now `false` (which
is effectively what users got with no customization anyway since that
default was changed in Atomikos 3.7
Closes gh-9141
Previously, when the liquibase.url, .username, and .password
properties were used to configure a DataSource specifically for
Liquibase that DataSource would never be explicitly closed. As it is
created by DataSourceBuilder with no explicitly configured type it
will use whichever connection pool is available and, therefore, will
create and keep open the pool's minimum number of connections. This
is an unnecessary use of resources both in the application and in the
database.
This commit updates LiquibaseAutoConfiguration so that if it uses
DataSourceBuilder to create a DataSource then it will also close that
DataSource once the database has been migrated.
Closes gh-9218
This commit allows to specify a deprecation level to a manual metadata
entry. The purpose of that new attribute is to distinguish cases where
the property is still bound (default) from cases where the property no
longer exists and won't be bound.
This gives the opportunity to IDEs to still show the property as an
error and offer documentation and an action to rename it if a
replacement exists.
Closes gh-9074
Previously, if lombok was running before the configuration metadata
annotation processor, duplicated keys were created as both the
getter/setter and the special lombok handling applied.
This commit makes sure to be lenient by removing duplicate metadata
entries. This commit also makes sure to identify the getter of a
nested group if present. That way, the sourceMethod is set consistently
and avoid the creation of a duplicate group.
Closes gh-8886