This commit reworks the CI pipeline to remove the use of Bintray for
publishing to Maven Central. In its place it adds a new
publishToCentral command to the release scripts. This command can be
used to publish a directory tree of artifacts to the Maven Central
gateway hosted by Sonatype.
Publishing consists of 4 steps:
1. Create the staging repository
2. Deploy artifacts to the repository
3. Close the repository
4. Release the repository
The command requires 3 arguments:
1. The type of release being performed
2. Location of a build info JSON file that describes the release
that is to be deployed
3. Root of a directory structure, in Maven repository layout, that
contains the artifacts to be deployed
Closes gh-25107
Previously, DataSource initialization was triggered via a
BeanPostProcessor or a schema created event from JPA. This caused
numerous problems with circular dependencies, bean lifecycle, etc and
added significant complexity.
This commit reworks DataSource initialization to remove the use of a
BeanPostProcessor entirely. In its place, DataSource initialization is
now driven by an InitializingBean with dependency relationships
between beans ensuring that initialization has been performed before
the DataSource is used. This aligns with the approach that's worked
well with Flyway and Liquibase.
More changes are planned to further simplify DataSource initialization.
The changes in this commit are a foundation for those changes. Any new
public API in this commit is highly likely to change before the next
GA.
Fixes gh-13042
Fixes gh-23736