To avoid any complications with functional changes between Hibernate 5
and Hibernate 6, this uses the hibernate-core-jakarta v5 module rather
than hibernate-core v6. This requires a specific dependency exclusion
in spring-webflow.gradle to make sure that hibernate-entitymanager
never causes both versions to be loaded. This can be simplified after
eventual adoption of Hibernate 6.
The Spring snapshot repository needs to be referenced in build.gradle
for this early stage work on SWF 3.
The java-library plugin is an extension of the older java plugin.
It introduces the api dependency configuration and helps us to get
the right scope in the generated POM.
Porting the JavaServer Faces support forward to Jakarta Server Faces
is outside my area of competence. Hopefully, someone with knowledge
of this area will be able to step up later.
Uses the new Java toolchain feature of Gradle to acquire Java 17.
Doing it this way means that you can start ./gradlew under any version
of Java and still use Java 17 for the build; it picks a candidate from
the environment or downloads one if required. It also takes care of
source and target compatibility, with the exception of ide.gradle
which is handled separately.
The maven plugin was removed in Gradle 7, so we need to replace it with
maven-publish. This uses a similar DSL, but operates in a slightly
different way. The simplest way of handling the differences is to
reorder its application within build.gradle so that appropriate
properties will have been applied by the time publish-maven.gradle
is invoked.
It is easier to standardise this now in one commit rather than
during later bulk changes where it would complicate the review process.
This is literally the result of running "dos2unix" on appropriate files.
There is no attempt here to likewise standardise the spaces/tabs
conventions in the codebase.
This commit removes the propdeps plugin.
"provided" configurations are replaced with "compileOnly", "testCompile"
configurations.
The "optional" configuration supported by propdeps is now replaced by a
local Gradle plugin defining a specific configuration for that.
As a result of that change, optional/provided dependencies are not
published with the POMs anymore.
This commit introduces the Spring dependency management Gradle
plugin. All dependency versions and BOMs are now managed in the
root project and declared in the modules directly.
This commit guards the PDF generation of the asciidoc reference
documentation with a version check.
Since the PDF generation takes a significant amount of time to build,
we should only generate it for non-SNAPSHOT versions.
Following the upgrade to JUnit 5 in gh-99, only the few remaining older
style tests extending from TestCase were being executed. This change
ensures JUnit 5 tests are executing as well.