This is an automated email from the ASF dual-hosted git repository.

jleroux pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 610e249758 Improved: Update build.gradle to the latest dependencies 
(OFBIZ-13194)
610e249758 is described below

commit 610e2497588f74930a5a67f4f867e9511c00f3be
Author: Jacques Le Roux <jacques.le.r...@les7arts.com>
AuthorDate: Fri Dec 13 11:05:21 2024 +0100

    Improved: Update build.gradle to the latest dependencies (OFBIZ-13194)
    
    Thanks to previous precious Danny Trunk's work at OFBIZ-13123, this time the
    effort was not too hard.
    
    There are 2 aspects:
    1) In build.gradle:
      Uses <<version "latest.release">> for plugins following
      
https://docs.gradle.org/7.0/release-notes.html#using-dynamic-versions-in-the-plugins-block
    
      Updates junitReport to 'org.apache.ant:ant-junit:1.10.15'
              checkstyle to toolVersion = '10.20.2'
    
      Adds a commented out "useLatestVersions" section. Commented out because
      I tried to use the recommended useLatestVersions and 
useLatestVersionsCheck
      ie gradlew -PenableDependencyUpdates useLatestVersions
             && gradlew -PenableDependencyUpdates useLatestVersionsCheck
      and got an issue:
      Execution failed for task ':useLatestVersionsCheck'
      Maybe because of:
      Failed to determine the latest version for the following dependencies
       - org.apereo.cas:cas-server-support-ldap-core
       - org.safehaus.jug:jug
      This said it was useful, could be more if we complete the 
"useLatestVersions"
      section
    
    2) In Dependencies the "standard" updates with new comments when needed
       ie removing or commenting issues in code with the help of 
useLatestVersions
       feature
---
 build.gradle        | 60 +++++++++++++++++++++++++++++++++++++++++++----------
 dependencies.gradle | 52 +++++++++++++++++++++++-----------------------
 2 files changed, 75 insertions(+), 37 deletions(-)

diff --git a/build.gradle b/build.gradle
index 0c102612ac..61f3424f86 100644
--- a/build.gradle
+++ b/build.gradle
@@ -23,20 +23,21 @@ import org.asciidoctor.gradle.jvm.AsciidoctorTask
  * Project setup
  * ======================================================== */
 plugins {
-    id 'application'
+    id 'application' // plugins that are versioned as part of Gradle are using 
simple quotes to differentiate them
     id 'groovy'
     id 'eclipse'
     id 'checkstyle'
     id 'codenarc'
     id 'maven-publish'
-    id 'org.asciidoctor.jvm.convert' version '4.0.2'
-    id 'org.asciidoctor.jvm.pdf' version '4.0.2'
-    id 'org.owasp.dependencycheck' version '10.0.2' apply false
-    id 'se.patrikerdes.use-latest-versions' version '0.2.18' apply false
-    id 'com.github.ben-manes.versions' version '0.51.0' apply false
-    id "com.github.ManifestClasspath" version "0.1.0-RELEASE"
-    id "com.github.jakemarsden.git-hooks" version "0.0.2"
-    id "com.github.node-gradle.node" version '7.0.2' apply false
+    id "org.asciidoctor.jvm.convert" version "latest.release"
+    id "org.asciidoctor.jvm.pdf" version "latest.release"
+    id "org.owasp.dependencycheck" version "latest.release" apply false
+    //id 'se.patrikerdes.use-latest-versions' version '0.2.18' apply false
+    id "se.patrikerdes.use-latest-versions"  version "latest.release" apply 
false
+    id "com.github.ben-manes.versions" version "latest.release" apply false
+    id "com.github.ManifestClasspath" version "latest.release"
+    id "com.github.jakemarsden.git-hooks" version "latest.release"
+    id "com.github.node-gradle.node" version "latest.release" apply false
 }
 
 /* OWASP plugin
@@ -71,6 +72,43 @@ if (project.hasProperty('enableDependencyUpdates')) {
     apply plugin: 'se.patrikerdes.use-latest-versions'
 }
 
+/* Configuration and default values. By default not available as it breacks 
Gradle build even when useLatestVersionsCheck (see above) is used.
+useLatestVersions {
+   // A whitelist of dependencies to update, in the format of group:name
+   // Equal to command line: --update-dependency=[values]
+   updateWhitelist = []
+   // A blacklist of dependencies to update, in the format of group:name
+   // Equal to command line: --ignore-dependency=[values]
+   updateBlacklist = []
+   // When enabled, root project gradle.properties will also be populated with
+   // versions from subprojects in multi-project build
+   // Equal to command line: --update-root-properties
+   updateRootProperties = false
+   // By default plugin tries to find all relevant gradle files (e.g. 
*.gradle, gradle.properties etc).
+   // This can be slow in some cases when project has a lot of gradle files. 
For example when using conventions
+   // in buildSrc. With this option you can specify what files should plugin 
search and check. Plugin will ignore
+   // files that don't exist. Empty list means use default strategy. File 
paths are relative to project dir.
+   //
+   // Example:
+   // versionFiles = ["gradle.build", "gradle.properties"]
+   // Will check just $projectDir/gradle.build and 
$projectDir/gradle.properties
+   //
+   // Note:
+   // You always have to specify file that has dependencies in some common 
dependency format with artifact coordinates,
+   // e.g. compileOnly "group:module:version" or 
compileOnly("group:module:version") or val dependency = "group:module:version" 
etc.
+   // For example if you set just versionFiles = ["gradle.properties"] this 
won't work, since plugin
+   // won't be able to correlate variable with artifact coordinates.
+   //
+   // Equal to command line: --version-files=[values]
+   versionFiles = []
+   // List of root project files to update when updateRootProperties is 
enabled.
+   // `build.gradle` is not an acceptable entry here as it breaks other 
expected
+   // functionality. Version variables in `build.gradle` need to be moved into
+   // a separate file which can be listed here.
+   // Equal to command line: --root-version-files=[values]
+   //rootVersionFiles = ['gradle.properties']
+}*/
+
 apply from: 'common.gradle'
 apply from: 'dependencies.gradle'
 
@@ -218,7 +256,7 @@ dependencies {
     }
 
     junitReport 'junit:junit:4.13.2'
-    junitReport 'org.apache.ant:ant-junit:1.10.14'
+    junitReport 'org.apache.ant:ant-junit:1.10.15'
 
     // Libraries downloaded manually
     implementation fileTree(dir: file("${rootDir}/lib"), include: '**/*.jar')
@@ -295,7 +333,7 @@ checkstyle {
     // Currently there are no errors so we can show new one when they appear
     showViolations = true
     // Specify tool version so we can keep it up-to-date
-    toolVersion = '10.17.0'
+    toolVersion = '10.20.2'
 }
 gitHooks {
     hooks = ['pre-push': 'checkstyleMain codenarcMain codenarcTest']
diff --git a/dependencies.gradle b/dependencies.gradle
index ae9e8a39a6..f296993486 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -18,13 +18,13 @@
  */
 dependencies {
     implementation 'com.github.ben-manes.caffeine:caffeine:3.1.8'
-    implementation 'com.google.guava:guava:33.2.1-jre'
+    implementation 'com.google.guava:guava:33.3.1-jre'
     implementation 'com.google.zxing:core:3.5.3'
     implementation 
'com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:1.4.2'
     implementation 'com.googlecode.ez-vcard:ez-vcard:0.12.1'
-    implementation 
'com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20220608.1'
-    implementation 'com.googlecode.libphonenumber:libphonenumber:8.13.31'
-    implementation 'com.ibm.icu:icu4j:74.2'
+    implementation 
'com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20240325.1'
+    implementation 'com.googlecode.libphonenumber:libphonenumber:8.13.52'
+    implementation 'com.ibm.icu:icu4j:76.1'
     implementation ('com.lowagie:itext:2.1.7') { // Don't update due to 
license change in newer versions, see OFBIZ-10455
         exclude  group: 'bouncycastle', module: 'bcmail-jdk14'
         exclude  group: 'bouncycastle', module: 'bcprov-jdk14'
@@ -32,21 +32,21 @@ dependencies {
     }
     implementation 'com.sun.mail:javax.mail:1.6.2'
     implementation 'com.rometools:rome:2.1.0'
-    implementation 'com.thoughtworks.xstream:xstream:1.4.20'
+    implementation 'com.thoughtworks.xstream:xstream:1.4.21'
     implementation 'commons-cli:commons-cli:1.5.0' // with 1.6.0, 2 tests of 
OfbizStartupUnitTests don't pass
     implementation 'commons-fileupload:commons-fileupload:1.5'
-    implementation 'commons-net:commons-net:3.10.0'
-    implementation 'commons-validator:commons-validator:1.8.0'
+    implementation 'commons-net:commons-net:3.11.1'
+    implementation 'commons-validator:commons-validator:1.9.0'
     implementation 'de.odysseus.juel:juel-impl:2.2.7'
     implementation 'javax.transaction:javax.transaction-api:1.3'
     implementation 'net.fortuna.ical4j:ical4j:1.0-rc4-atlassian-12'
     implementation 'net.lingala.zip4j:zip4j:2.11.5'
-    implementation 'org.apache.ant:ant-junit:1.10.14'
+    implementation 'org.apache.ant:ant-junit:1.10.15'
     implementation 'org.apache.commons:commons-collections4:4.4'
-    implementation 'org.apache.commons:commons-csv:1.10.0'
+    implementation 'org.apache.commons:commons-csv:1.12.0'
     implementation 'org.apache.commons:commons-dbcp2:2.13.0'
     implementation 'org.apache.commons:commons-imaging:1.0-alpha3' // Alpha 
but OK, "Imaging was working and was used by a number of projects in production 
even before reaching its initial release as an Apache Commons component." Since 
1.0.0-alpha4 (note the use of semver) the API has changed. Better wait an 
"official release" to rewrite OFBiz code...
-    implementation 'org.apache.commons:commons-text:1.11.0'
+    implementation 'org.apache.commons:commons-text:1.12.0'
     implementation 'org.apache.geronimo.components:geronimo-transaction:3.1.5' 
// 4.0.0 does not compile
     implementation 'org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1'
     implementation 'org.apache.httpcomponents:httpclient-cache:4.5.14'
@@ -54,28 +54,28 @@ dependencies {
     implementation 'org.apache.logging.log4j:log4j-core:2.24.2' // Somehow 
needed by Buildbot to compile OFBizDynamicThresholdFilter.java
     implementation 'org.apache.poi:poi:5.3.0'
     implementation 'org.apache.pdfbox:pdfbox:2.0.32' // 3.0.1 does not compile
-    implementation 'org.apache.shiro:shiro-core:1.13.0'
-    implementation 'org.apache.shiro:shiro-crypto-cipher:2.0.0'
-    implementation 'org.apache.sshd:sshd-core:2.13.1'
-    implementation 'org.apache.sshd:sshd-sftp:2.13.1'
-    implementation 'org.apache.tika:tika-core:2.9.2'
-    implementation 'org.apache.tika:tika-parsers:2.9.2'
-    implementation 'org.apache.tika:tika-parser-pdf-module:2.9.2'
+    implementation 'org.apache.shiro:shiro-core:1.13.0' // Got "Exception in 
thread "main" java.lang.UnsupportedOperationException: Cannot create a hash 
with the given algorithm: argon2" with 2.0.2 in integration tests
+    implementation 'org.apache.shiro:shiro-crypto-cipher:2.0.2'
+    implementation 'org.apache.sshd:sshd-core:2.14.0'
+    implementation 'org.apache.sshd:sshd-sftp:2.14.0'
+    implementation 'org.apache.tika:tika-core:2.9.2'     // To be compatible 
with tika-parser-pdf-module below
+    implementation 'org.apache.tika:tika-parsers:2.9.2' // To be compatible 
with tika-parser-pdf-module below
+    implementation 'org.apache.tika:tika-parser-pdf-module:2.9.2' // > 2.9.2 
does not compile, see OFBIZ-13155
     implementation 'org.apache.cxf:cxf-rt-frontend-jaxrs:3.6.4' // 4.x+ 
requires javax.xml.bind -> jakarta.xml.bind namespace change
     implementation 'org.apache.tomcat:tomcat-catalina-ha:9.0.97' // Remember 
to change the version number (9 now) in javadoc block if needed.
     implementation 'org.apache.tomcat:tomcat-jasper:9.0.97'
     implementation 'org.apache.axis2:axis2-kernel:1.8.2'
-    implementation 'org.apache.xmlgraphics:batik-anim:1.17'
-    implementation 'org.apache.xmlgraphics:batik-util:1.17'
-    implementation 'org.apache.xmlgraphics:batik-bridge:1.17'
+    implementation 'org.apache.xmlgraphics:batik-anim:1.18'
+    implementation 'org.apache.xmlgraphics:batik-util:1.18'
+    implementation 'org.apache.xmlgraphics:batik-bridge:1.18'
     implementation 'org.apache.xmlgraphics:fop:2.3' // NOTE: since 2.4 
dependencies are messed up. See 
https://github.com/moqui/moqui-fop/blob/master/build.gradle
-    implementation 'org.clojure:clojure:1.11.3'
-    implementation 'org.apache.groovy:groovy-all:4.0.22'
+    implementation 'org.clojure:clojure:1.12.0'
+    implementation 'org.apache.groovy:groovy-all:5.0.0-alpha-11'
     implementation 'org.freemarker:freemarker:2.3.34-SNAPSHOT' // Remember to 
change the version number in FreeMarkerWorker class when upgrading. See 
OFBIZ-10019 if >= 2.4
-    implementation 'org.owasp.esapi:esapi:2.5.4.0'
+    implementation 'org.owasp.esapi:esapi:2.6.0.0'
     implementation 'org.cyberneko:html:1.9.8'
     implementation 'org.springframework:spring-test:5.3.29' //  6.1.4 does not 
compile
-    implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.1'
+    implementation 'com.fasterxml.jackson.core:jackson-databind:2.18.2'
     implementation 'oro:oro:2.0.8'
     implementation 'wsdl4j:wsdl4j:1.6.3'
     implementation 'com.auth0:java-jwt:4.4.0'
@@ -88,7 +88,7 @@ dependencies {
     }
 
     testImplementation 'org.hamcrest:hamcrest-library:2.2' // Enable junit4 to 
not depend on hamcrest-1.3
-    testImplementation 'org.mockito:mockito-core:5.10.0'
+    testImplementation 'org.mockito:mockito-core:5.14.2'
     testImplementation 'org.jmockit:jmockit:1.49'
     testImplementation 'com.pholser:junit-quickcheck-generators:1.0'
 
@@ -108,7 +108,7 @@ dependencies {
     runtimeOnly 'org.apache.logging.log4j:log4j-jcl:2.24.2' // need to 
constrain to version to avoid classpath conflict (ReflectionUtil)
 
     // specify last codenarc version for java 17 compliance
-    codenarc('org.codenarc:CodeNarc:3.4.0')
+    codenarc('org.codenarc:CodeNarc:3.5.0')
 
     // use constraints to update transitive dependencies
     constraints {

Reply via email to