update d'une version CAS a une autres, exemple ici passage d'un 7.1.4 a 7.2.6
l'objectif etant de conserver nos parametrage, dependencies ldap, CSS / views etc …
summary
OpenRewrite recipes are produced by CAS itself and are essentially YAML files that make minimally invasive changes to your CAS build allowing you to upgrade from one version to the next with minimal effort. The recipe contains almost everything that is required for a CAS build system to navigate from one version to other and automates tedious aspects of the upgrade such as finding the correct versions of CAS, relevant libraries and plugins as well as any possible structural changes to one’s CAS build.
[root@cas cas-overlay-template]# ./gradlew casVersion --no-configuration-cache -q Using Amazon Corretto as the JVM vendor for the Java toolchain Building CAS version 7.1.4 with application server -tomcat 7.1.4
ask the build to discover and list all upgrade recipes that might be applicable for the task at hand
[root@cas cas-overlay-template]# time ./gradlew --init-script openrewrite.gradle rewriteDiscover -PtargetVersion=7.2.6 --no-configuration-cache --no-daemon | grep "org.apereo.cas"
org.apereo.cas.cas726
org.apereo.cas.cas725
org.apereo.cas.cas724
org.apereo.cas.cas720
org.apereo.cas.cas721
org.apereo.cas.cas723
org.apereo.cas.cas722
org.apereo.cas.cas710-RC5
org.apereo.cas.cas710-RC6
org.apereo.cas.cas710-RC2
org.apereo.cas.cas710-RC1
org.apereo.cas.cas720-RC1
org.apereo.cas.cas710
org.apereo.cas.cas720-RC2
org.apereo.cas.cas720-RC3
org.apereo.cas.cas720-RC6
org.apereo.cas.cas700
org.apereo.cas.cas720-RC4
org.apereo.cas.cas720-RC5
real 0m31.579s
Next, we can dry-run our selected recipe, org.apereo.cas.cas702, and see which files would be changed in the build log. This does not alter your source files on disk at all. This goal can be used to preview the changes that would be made by the active recipes.
[root@cas cas-overlay-template]# time ./gradlew --init-script openrewrite.gradle rewriteDryRun -PtargetVersion=7.2.6 -DactiveRecipe="org.apereo.cas.cas726" --no-configuration-cache --no-daemon
To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/8.12.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.
Daemon will be stopped at the end of the build
Configuration on demand is an incubating feature.
> Configure project :
Using Amazon Corretto as the JVM vendor for the Java toolchain
Building CAS version 7.1.4 with application server -tomcat
> Task :rewriteDryRun
Validating active recipes
Scanning sources in project :
Using active styles []
There were problems parsing some source files, run with --info to see full stack traces
There were problems parsing build.gradle
There were problems parsing gradle/tasks.gradle
There were problems parsing helm/cas-server/templates/casconfig-configmap.yaml
There were problems parsing helm/cas-server/templates/ingress.yaml
There were problems parsing helm/cas-server/templates/role.yaml
There were problems parsing helm/cas-server/templates/rolebinding.yaml
There were problems parsing helm/cas-server/templates/script-configmap.yaml
There were problems parsing helm/cas-server/templates/service.yaml
There were problems parsing helm/cas-server/templates/serviceaccount.yaml
There were problems parsing helm/cas-server/templates/statefulset.yaml
There were problems parsing helm/cas-server/templates/tests/test-cas-server.yaml
All sources parsed, running active recipes: org.apereo.cas.cas726
These recipes would make changes to gradle.properties:
org.openrewrite.gradle.AddProperty: {key=cas.version, value=7.2.6, overwrite=true, filePattern=gradle.properties}
org.openrewrite.gradle.AddProperty: {key=version, value=7.2.6, overwrite=true, filePattern=gradle.properties}
org.openrewrite.gradle.AddProperty: {key=springBootVersion, value=3.4.4, overwrite=true, filePattern=gradle.properties}
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
org.openrewrite.gradle.AddProperty: {key=tomcatVersion, value=10.1.43, overwrite=false, filePattern=gradle.properties}
org.openrewrite.gradle.AddProperty: {key=jibVersion, value=3.4.5, overwrite=true, filePattern=gradle.properties}
These recipes would make changes to gradle/wrapper/gradle-wrapper.jar:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
These recipes would make changes to gradlew:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
These recipes would make changes to gradlew.bat:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
These recipes would make changes to gradle/wrapper/gradle-wrapper.properties:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
These recipes would make changes to gradlew:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
These recipes would make changes to gradlew.bat:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
These recipes would make changes to gradle/wrapper/gradle-wrapper.jar:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
These recipes would make changes to gradle/wrapper/gradle-wrapper.properties:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
Report available:
/opt/cas-src/cas-overlay-template/build/reports/rewrite/rewrite.patch
Estimate time saved: 45m
Run 'gradle rewriteRun' to apply the recipes.
[Incubating] Problems report is available at: file:///opt/cas-src/cas-overlay-template/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.12.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD SUCCESSFUL in 2m 13s
6 actionable tasks: 2 executed, 4 up-to-date
real 2m14.409s
user 2m31.799s
sys 0m12.976s
You can in fact examine the generated .patch file:
Report available:
/opt/cas-src/cas-overlay-template/build/reports/rewrite/rewrite.patch
[root@cas cas-overlay-template]# cat /opt/cas-src/cas-overlay-template/build/reports/rewrite/rewrite.patch diff --git a/gradle.properties b/gradle.properties index b9bcfc0..87cb882 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,19 +1,19 @@ org.apereo.cas.cas726 # This overlay project's version # For consistency and with no other effect, this is set to the CAS version itself. -version=7.1.4 +version=7.2.6 ...
When you are ready, you can run the actual recipe:
[root@cas cas-overlay-template]# time ./gradlew --init-script openrewrite.gradle rewriteRun -PtargetVersion=7.2.6 -DactiveRecipe="org.apereo.cas.cas726" --no-configuration-cache --no-daemon
To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/8.12.1/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.
Daemon will be stopped at the end of the build
Configuration on demand is an incubating feature.
> Configure project :
Using Amazon Corretto as the JVM vendor for the Java toolchain
Building CAS version 7.1.4 with application server -tomcat
> Task :rewriteRun
Validating active recipes
Scanning sources in project :
Using active styles []
There were problems parsing some source files, run with --info to see full stack traces
There were problems parsing build.gradle
There were problems parsing gradle/tasks.gradle
There were problems parsing helm/cas-server/templates/casconfig-configmap.yaml
There were problems parsing helm/cas-server/templates/ingress.yaml
There were problems parsing helm/cas-server/templates/role.yaml
There were problems parsing helm/cas-server/templates/rolebinding.yaml
There were problems parsing helm/cas-server/templates/script-configmap.yaml
There were problems parsing helm/cas-server/templates/service.yaml
There were problems parsing helm/cas-server/templates/serviceaccount.yaml
There were problems parsing helm/cas-server/templates/statefulset.yaml
There were problems parsing helm/cas-server/templates/tests/test-cas-server.yaml
All sources parsed, running active recipes: org.apereo.cas.cas726
Changes have been made to gradle.properties by:
org.openrewrite.gradle.AddProperty: {key=cas.version, value=7.2.6, overwrite=true, filePattern=gradle.properties}
org.openrewrite.gradle.AddProperty: {key=version, value=7.2.6, overwrite=true, filePattern=gradle.properties}
org.openrewrite.gradle.AddProperty: {key=springBootVersion, value=3.4.4, overwrite=true, filePattern=gradle.properties}
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
org.openrewrite.gradle.AddProperty: {key=tomcatVersion, value=10.1.43, overwrite=false, filePattern=gradle.properties}
org.openrewrite.gradle.AddProperty: {key=jibVersion, value=3.4.5, overwrite=true, filePattern=gradle.properties}
Changes have been made to gradle/wrapper/gradle-wrapper.properties by:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
Changes have been made to gradlew by:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
Changes have been made to gradlew.bat by:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
Changes have been made to gradle/wrapper/gradle-wrapper.jar by:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
Changes have been made to gradlew by:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
Changes have been made to gradlew.bat by:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
Changes have been made to gradle/wrapper/gradle-wrapper.jar by:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
Changes have been made to gradle/wrapper/gradle-wrapper.properties by:
org.openrewrite.gradle.UpdateGradleWrapper: {version=8.13, addIfMissing=true}
Please review and commit the results.
Estimate time saved: 45m
[Incubating] Problems report is available at: file:///opt/cas-src/cas-overlay-template/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.12.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD SUCCESSFUL in 1m 22s
6 actionable tasks: 1 executed, 5 up-to-date
real 1m23.020s
user 1m46.706s
sys 0m11.937s
[root@cas7dev cas-overlay-template-7u]# ./gradlew clean copyCasConfiguration build --no-daemon
[Incubating] Problems report is available at: file:///opt/cas-src/cas-overlay-template-7u/build/reports/problems/problems-report.html
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'cas'.
> Could not resolve all artifacts for configuration 'classpath'.
> Could not find org.apereo.cas:cas-server-core-configuration-metadata-repository:7.2.7.
Searched in the following locations:
- file:/root/.m2/repository/org/apereo/cas/cas-server-core-configuration-metadata-repository/7.2.7/cas-server-core-configuration-metadata-repository-7.2.7.pom
- https://repo.maven.apache.org/maven2/org/apereo/cas/cas-server-core-configuration-metadata-repository/7.2.7/cas-server-core-configuration-metadata-repository-7.2.7.pom
- https://plugins.gradle.org/m2/org/apereo/cas/cas-server-core-configuration-metadata-repository/7.2.7/cas-server-core-configuration-metadata-repository-7.2.7.pom
- https://repo.spring.io/milestone/org/apereo/cas/cas-server-core-configuration-metadata-repository/7.2.7/cas-server-core-configuration-metadata-repository-7.2.7.pom
Required by:
root project :
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
The Fix: Remove that line. The CAS Gradle plugin typically handles what it needs internally. If you need configuration metadata support, ensure you are using the correct CAS Gradle Plugin version that matches your CAS version.
[root@cas7dev cas-overlay-template-7u]# vim build.gradle
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:${project.springBootVersion}"
classpath "io.freefair.gradle:maven-plugin:${project.gradleFreeFairPluginVersion}"
classpath "io.freefair.gradle:lombok-plugin:${project.gradleFreeFairPluginVersion}"
classpath "com.google.cloud.tools:jib-gradle-plugin:${project.jibVersion}"
classpath "com.bmuschko:gradle-docker-plugin:${project.gradleDockerPluginVersion}"
classpath "de.undercouch:gradle-download-task:${project.gradleDownloadTaskVersion}"
classpath "org.apereo.cas:cas-server-core-api-configuration-model:${project.'cas.version'}"
// classpath "org.apereo.cas:cas-server-core-configuration-metadata-repository:${project.'cas.version'}"
}
}
puis erreur
* Where:
Build file '/opt/cas-src/cas-overlay-template-7u/build.gradle' line: 90
* What went wrong:
A problem occurred evaluating root project 'cas'.
> Could not resolve all artifacts for configuration 'classpath'.
> Could not find org.apereo.cas:cas-server-core-configuration-metadata-repository:7.2.7.
Searched in the following locations:
- file:/root/.m2/repository/org/apereo/cas/cas-server-core-configuration-metadata-repository/7.2.7/cas-server-core-configuration-metadata-repository-7.2.7.pom
- https://repo.maven.apache.org/maven2/org/apereo/cas/cas-server-core-configuration-metadata-repository/7.2.7/cas-server-core-configuration-metadata-repository-7.2.7.pom
- https://plugins.gradle.org/m2/org/apereo/cas/cas-server-core-configuration-metadata-repository/7.2.7/cas-server-core-configuration-metadata-repository-7.2.7.pom
- https://repo.spring.io/milestone/org/apereo/cas/cas-server-core-configuration-metadata-repository/7.2.7/cas-server-core-configuration-metadata-repository-7.2.7.pom
Required by:
unspecified:unspecified:unspecified
line 90 de build.gradle appel
apply from: rootProject.file(“gradle/tasks.gradle”)
# vim /opt/cas-src/cas-overlay-template-7u/gradle/tasks.gradle
on comment alors tout le dernier bloc
/* task exportConfigMetadata(group: "CAS", description: "Export collection of CAS properties") {
def file = new File(project.rootDir, 'config-metadata.properties')
def queryType = ConfigurationMetadataCatalogQuery.QueryTypes.CAS
...
}
println "Configuration metadata is available at ${file.absolutePath}"
}
} */
cela build enfin
[root@cas7dev cas-overlay-template-7u]# ./gradlew clean copyCasConfiguration build --no-daemon To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/8.13/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. Daemon will be stopped at the end of the build Configuration on demand is an incubating feature. > Configure project : Using Amazon Corretto as the JVM vendor for the Java toolchain Building CAS version 7.2.7 with application server -tomcat [Incubating] Problems report is available at: file:///opt/cas-src/cas-overlay-template-7u/build/reports/problems/problems-report.html Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.13/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD SUCCESSFUL in 1m 6s 9 actionable tasks: 9 executed [root@cas7dev cas-overlay-template-7u]# ls -l ./build/libs/ total 125420 -rwxr--r-- 1 root root 128428810 Feb 1 21:46 cas.war
cf logs
2026-01-26 17:54:40,649 ERROR [org.apereo.cas.authentication.mfa.trigger.GlobalMultifactorAuthenticationTrigger] - <No multifactor authentication providers are available in the application context to handle mfa-simple>
[root@cas cas-overlay-template]# ./gradlew clean copyCasConfiguration build --no-daemon
To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/8.13/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.
Daemon will be stopped at the end of the build
Configuration on demand is an incubating feature.
> Configure project :
Using Amazon Corretto as the JVM vendor for the Java toolchain
Building CAS version 7.2.6 with application server -tomcat
> Task :compileJava FAILED
[Incubating] Problems report is available at: file:///opt/cas-src/cas-overlay-template/build/reports/problems/problems-report.html
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> Could not resolve all files for configuration ':compileClasspath'.
> Could not find cas-server-support-simple-mfa-7.2.6-casVersion'.jar (org.apereo.cas:cas-server-support-simple-mfa:7.2.6).
Searched in the following locations:
https://repo.maven.apache.org/maven2/org/apereo/cas/cas-server-support-simple-mfa/7.2.6/cas-server-support-simple-mfa-7.2.6-casVersion'.jar
puis build
[root@cas cas-overlay-template]# ./gradlew clean copyCasConfiguration build --no-daemon To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/8.13/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. Daemon will be stopped at the end of the build Configuration on demand is an incubating feature. > Configure project : Using Amazon Corretto as the JVM vendor for the Java toolchain Building CAS version 7.2.6 with application server -tomcat [Incubating] Problems report is available at: file:///opt/cas-src/cas-overlay-template/build/reports/problems/problems-report.html Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.13/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD SUCCESSFUL in 1m 15s 9 actionable tasks: 9 executed [root@cas cas-overlay-template]# ls -lh build/libs total 123M -rwxr--r-- 1 root root 123M Jan 23 22:44 cas.war
[root@cas cas-overlay-template]# mv /opt/tomcat/webapps/cas.war /root/cas.war.7.1.4 [root@cas cas-overlay-template]# ls -l /opt/cas-src/cas-overlay-template/build/libs/cas.war -rwxr--r-- 1 root root 128425823 Jan 23 22:44 /opt/cas-src/cas-overlay-template/build/libs/cas.war [root@cas cas-overlay-template]# cp /opt/cas-src/cas-overlay-template/build/libs/cas.war /opt/tomcat/webapps/cas.war