camunda-bpm-platform icon indicating copy to clipboard operation
camunda-bpm-platform copied to clipboard

Update Groovy to version 4.0

Open yanavasileva opened this issue 1 year ago • 6 comments

Acceptance Criteria (Required on creation)

  • Groovy in Camunda Platform is updated to latest patch of version 4.0

Hints

Links

  • https://github.com/camunda/camunda-bpm-platform/issues/2770

Breakdown

  • Bump to latest patch of Groovy 4.0
  • Switch to the new maven coordinates from org.codehaus.groovy to org.apache.groovy (~100 hits in CE and EE, across pom.xml, module.xml, assembly.xml, and two tests)
    • Tests:
      • https://github.com/camunda/camunda-bpm-platform/blob/ca3589429c160a9d7c1445f267fb809988b9ad84/qa/integration-tests-engine/src/test/java/org/camunda/bpm/integrationtest/deployment/war/TestWarDeploymentWithProcessEnginePlugin.java#L54
      • https://github.com/camunda/camunda-bpm-platform/blob/ca3589429c160a9d7c1445f267fb809988b9ad84/qa/integration-tests-engine/src/test/java/org/camunda/bpm/integrationtest/functional/scriptengine/GroovyPaClassImportTest.java#L50
    • Note: occurrences of org.codehaus.groovy in qa test fixtures can be pinned to the previously used groovy version (same goes for test old engine:
      • https://github.com/camunda/camunda-bpm-platform/blob/ca3589429c160a9d7c1445f267fb809988b9ad84/qa/test-db-instance-migration/test-fixture-710/pom.xml#L53-L56
  • Add a groovy-dateutil library to all distributions for backwards compatibility with the extension methods for the java.util.Date class. (As we expect the users are using the methods heavily.)
    • [Optional] Consider adding also groovy-datetime dependency for the new date classes. (An alternative will be to not add it and a user can choose whether to add it in case they need it.)
  • Docs: Add a paragraph in the migration guide to
    • describe the groovy update, the user must follow Groovy 2.5, 3.0, and 4.0 release notes to migrate their scripts
    • explain how to downgrade if the user don’t manage to migrate their scripts.
  • Support: Inform the Support team about made changes and discuss with them how to support customers who have issues migration their scripts.
### Optional follow ups
- [ ] https://github.com/camunda/camunda-bpm-platform/issues/3680
- [ ] https://github.com/camunda/camunda-bpm-platform/issues/3681
### Pull Requests
- [ ] https://github.com/camunda/camunda-bpm-platform/pull/4458
- [ ] https://github.com/camunda/camunda-bpm-platform-ee/pull/956
- [ ] https://github.com/camunda/camunda-docs-manual/pull/1667

Dev2QA handover

  • [ ] Does this ticket need a QA test and the testing goals are not clear from the description? Add a Dev2QA handover comment

yanavasileva avatar Aug 16 '23 08:08 yanavasileva

Assigning to decider (@ThorbenLindhauer) for scheduling.

yanavasileva avatar Aug 16 '23 08:08 yanavasileva

We'll consider this in future product planning rounds, not scheduling immediately.

ThorbenLindhauer avatar Aug 21 '23 13:08 ThorbenLindhauer

@yanavasileva should we add a point about informing and educating the support team? That could include discussing with them how to support customers that are struggling to migrate their scripts.

ThorbenLindhauer avatar Aug 28 '23 08:08 ThorbenLindhauer

@ThorbenLindhauer, we should do that. I added Support point to the breakdown to cover that aspect as part of the ticket.

yanavasileva avatar Aug 28 '23 08:08 yanavasileva

Devtest

Tested locally with Tomcat build.

Run task that called a script that only works if `groovy-datetime` & `groovy-dateutils` are present in distro:
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.TimeZone

// Only works if DateUtils is present
def sdf = new SimpleDateFormat("yyyyMMdd HHmmss SSS")
def calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
calendar.time = sdf.parse("20180115 153256 001")

// Works if DateTime is present
import java.time.Duration

def duration = Duration.ofSeconds(10)
def longer = duration + 5
def shorter = duration - 5

assert longer.seconds == 15
assert shorter.seconds == 5
assert (++longer).seconds == 16
assert (--shorter).seconds == 4

Verified that all distro build contains groovy-datetime & groovy-dateutils locally

CE

jar tf ./distro/wildfly/modules/target/modules/org/apache/groovy/groovy-datetime/main/groovy-datetime-4.0.21.jar
META-INF/
META-INF/MANIFEST.MF
META-INF/groovy-release-info.properties
META-INF/groovy/
META-INF/groovy/org.codehaus.groovy.runtime.ExtensionModule
org/
org/apache/
org/apache/groovy/
org/apache/groovy/datetime/
org/apache/groovy/datetime/extensions/
org/apache/groovy/datetime/extensions/DateTimeExtensions$1.class
org/apache/groovy/datetime/extensions/DateTimeExtensions.class
org/apache/groovy/datetime/extensions/DateTimeStaticExtensions.class
META-INF/INDEX.LIST


jar tf distro/run/distro/target/camunda-bpm-run-7.22.0-SNAPSHOT.zip | grep groovy
configuration/userlib/groovy-jsr223-4.0.21.jar
configuration/userlib/groovy-4.0.21.jar
configuration/userlib/groovy-json-4.0.21.jar
configuration/userlib/groovy-xml-4.0.21.jar
configuration/userlib/groovy-templates-4.0.21.jar
configuration/userlib/groovy-dateutil-4.0.21.jar
configuration/userlib/groovy-datetime-4.0.21.jar

camunda-bpm-platform % jar tf distro/wildfly/distro/target/camunda-bpm-wildfly-7.22.0-SNAPSHOT.zip | grep groovy
modules/org/apache/groovy/
modules/org/apache/groovy/groovy-datetime/
modules/org/apache/groovy/groovy-datetime/main/
modules/org/apache/groovy/groovy-templates/
modules/org/apache/groovy/groovy-templates/main/
modules/org/apache/groovy/groovy-dateutil/
modules/org/apache/groovy/groovy-dateutil/main/
modules/org/apache/groovy/groovy/
modules/org/apache/groovy/groovy/main/
modules/org/apache/groovy/groovy-jsr223/
modules/org/apache/groovy/groovy-jsr223/main/
modules/org/apache/groovy/groovy-xml/
modules/org/apache/groovy/groovy-xml/main/
modules/org/apache/groovy/groovy-all/
modules/org/apache/groovy/groovy-all/main/
modules/org/apache/groovy/groovy-json/
modules/org/apache/groovy/groovy-json/main/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-datetime/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-datetime/main/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-templates/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-templates/main/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-dateutil/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-dateutil/main/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy/main/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-jsr223/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-jsr223/main/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-xml/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-xml/main/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-json/
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-json/main/
modules/org/apache/groovy/groovy-datetime/main/groovy-datetime-4.0.21.jar
modules/org/apache/groovy/groovy-templates/main/groovy-templates-4.0.21.jar
modules/org/apache/groovy/groovy-dateutil/main/groovy-dateutil-4.0.21.jar
modules/org/apache/groovy/groovy/main/groovy-4.0.21.jar
modules/org/apache/groovy/groovy-jsr223/main/groovy-jsr223-4.0.21.jar
modules/org/apache/groovy/groovy-xml/main/groovy-xml-4.0.21.jar
modules/org/apache/groovy/groovy-all/main/groovy-4.0.21.jar
modules/org/apache/groovy/groovy-all/main/groovy-xml-4.0.21.jar
modules/org/apache/groovy/groovy-all/main/groovy-datetime-4.0.21.jar
modules/org/apache/groovy/groovy-all/main/groovy-dateutil-4.0.21.jar
modules/org/apache/groovy/groovy-all/main/groovy-templates-4.0.21.jar
modules/org/apache/groovy/groovy-all/main/groovy-json-4.0.21.jar
modules/org/apache/groovy/groovy-all/main/module.xml
modules/org/apache/groovy/groovy-all/main/groovy-jsr223-4.0.21.jar
modules/org/apache/groovy/groovy-json/main/groovy-json-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-datetime/main/groovy-datetime-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-templates/main/groovy-templates-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-dateutil/main/groovy-dateutil-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy/main/groovy-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-jsr223/main/groovy-jsr223-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-xml/main/groovy-xml-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-xml-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-datetime-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-dateutil-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-templates-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-json-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/module.xml
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-jsr223-4.0.21.jar
server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-json/main/groovy-json-4.0.21.jar
lib/groovy-4.0.21.jar
lib/groovy-jsr223-4.0.21.jar
lib/groovy-json-4.0.21.jar
lib/groovy-xml-4.0.21.jar
lib/groovy-templates-4.0.21.jar
lib/groovy-dateutil-4.0.21.jar
lib/groovy-datetime-4.0.21.jar

jar tf distro/wildfly26/modules/target/camunda-wildfly26-modules.jar | grep groovy
org/apache/groovy/
org/apache/groovy/groovy-datetime/
org/apache/groovy/groovy-datetime/main/
org/apache/groovy/groovy-templates/
org/apache/groovy/groovy-templates/main/
org/apache/groovy/groovy-dateutil/
org/apache/groovy/groovy-dateutil/main/
org/apache/groovy/groovy/
org/apache/groovy/groovy/main/
org/apache/groovy/groovy-jsr223/
org/apache/groovy/groovy-jsr223/main/
org/apache/groovy/groovy-xml/
org/apache/groovy/groovy-xml/main/
org/apache/groovy/groovy-all/
org/apache/groovy/groovy-all/main/
org/apache/groovy/groovy-json/
org/apache/groovy/groovy-json/main/
org/apache/groovy/groovy-datetime/main/groovy-datetime-4.0.21.jar
org/apache/groovy/groovy-templates/main/groovy-templates-4.0.21.jar
org/apache/groovy/groovy-dateutil/main/groovy-dateutil-4.0.21.jar
org/apache/groovy/groovy/main/groovy-4.0.21.jar
org/apache/groovy/groovy-jsr223/main/groovy-jsr223-4.0.21.jar
org/apache/groovy/groovy-xml/main/groovy-xml-4.0.21.jar
org/apache/groovy/groovy-all/main/groovy-4.0.21.jar
org/apache/groovy/groovy-all/main/groovy-xml-4.0.21.jar
org/apache/groovy/groovy-all/main/groovy-datetime-4.0.21.jar
org/apache/groovy/groovy-all/main/groovy-dateutil-4.0.21.jar
org/apache/groovy/groovy-all/main/groovy-templates-4.0.21.jar
org/apache/groovy/groovy-all/main/groovy-json-4.0.21.jar
org/apache/groovy/groovy-all/main/module.xml
org/apache/groovy/groovy-all/main/groovy-jsr223-4.0.21.jar
org/apache/groovy/groovy-json/main/groovy-json-4.0.21.jar

jar tf distro/tomcat/distro/target/camunda-bpm-tomcat-7.22.0-SNAPSHOT.zip | grep groovy
server/apache-tomcat-9.0.89/lib/groovy-4.0.21.jar
server/apache-tomcat-9.0.89/lib/groovy-jsr223-4.0.21.jar
server/apache-tomcat-9.0.89/lib/groovy-json-4.0.21.jar
server/apache-tomcat-9.0.89/lib/groovy-xml-4.0.21.jar
server/apache-tomcat-9.0.89/lib/groovy-templates-4.0.21.jar
server/apache-tomcat-9.0.89/lib/groovy-dateutil-4.0.21.jar
server/apache-tomcat-9.0.89/lib/groovy-datetime-4.0.21.jar
lib/groovy-4.0.21.jar
lib/groovy-jsr223-4.0.21.jar
lib/groovy-json-4.0.21.jar
lib/groovy-xml-4.0.21.jar
lib/groovy-templates-4.0.21.jar
lib/groovy-dateutil-4.0.21.jar
lib/groovy-datetime-4.0.21.jar

EE


 unzip -l distro/websphere/distro/target/camunda-ee-ibm-was-7.22.0-SNAPSHOT.zip | grep groovy 
  7601299  04-06-2024 06:37   server/lib/groovy-4.0.21.jar
    16922  06-24-2024 14:49   server/lib/groovy-jsr223-4.0.21.jar
   130012  04-06-2024 06:50   server/lib/groovy-json-4.0.21.jar
   212574  04-06-2024 06:59   server/lib/groovy-xml-4.0.21.jar
    92239  06-24-2024 14:49   server/lib/groovy-templates-4.0.21.jar
     7886  04-06-2024 06:46   server/lib/groovy-dateutil-4.0.21.jar
    15580  06-24-2024 14:51   server/lib/groovy-datetime-4.0.21.jar


 jar tf distro/tomcat/distro/target/camunda-bpm-ee-tomcat-7.22.0-SNAPSHOT.zip | grep groovy 
server/apache-tomcat-9.0.89/lib/groovy-4.0.21.jar
server/apache-tomcat-9.0.89/lib/groovy-jsr223-4.0.21.jar
server/apache-tomcat-9.0.89/lib/groovy-json-4.0.21.jar
server/apache-tomcat-9.0.89/lib/groovy-xml-4.0.21.jar
server/apache-tomcat-9.0.89/lib/groovy-templates-4.0.21.jar
server/apache-tomcat-9.0.89/lib/groovy-dateutil-4.0.21.jar
server/apache-tomcat-9.0.89/lib/groovy-datetime-4.0.21.jar
lib/groovy-4.0.21.jar
lib/groovy-jsr223-4.0.21.jar
lib/groovy-json-4.0.21.jar
lib/groovy-xml-4.0.21.jar
lib/groovy-templates-4.0.21.jar
lib/groovy-dateutil-4.0.21.jar
lib/groovy-datetime-4.0.21.jar


 unzip -l distro/wildfly/distro/target/camunda-bpm-ee-wildfly-7.22.0-SNAPSHOT.zip | grep groovy
        0  06-27-2024 08:40   modules/org/apache/groovy/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-datetime/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-datetime/main/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-templates/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-templates/main/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-dateutil/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-dateutil/main/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy/main/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-jsr223/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-jsr223/main/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-xml/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-xml/main/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-all/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-all/main/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-json/
        0  06-27-2024 08:40   modules/org/apache/groovy/groovy-json/main/
    15580  06-27-2024 08:40   modules/org/apache/groovy/groovy-datetime/main/groovy-datetime-4.0.21.jar
    92239  06-27-2024 08:40   modules/org/apache/groovy/groovy-templates/main/groovy-templates-4.0.21.jar
     7886  06-27-2024 08:40   modules/org/apache/groovy/groovy-dateutil/main/groovy-dateutil-4.0.21.jar
  7601299  06-27-2024 08:40   modules/org/apache/groovy/groovy/main/groovy-4.0.21.jar
    16922  06-27-2024 08:40   modules/org/apache/groovy/groovy-jsr223/main/groovy-jsr223-4.0.21.jar
   212574  06-27-2024 08:40   modules/org/apache/groovy/groovy-xml/main/groovy-xml-4.0.21.jar
  7601299  06-27-2024 08:40   modules/org/apache/groovy/groovy-all/main/groovy-4.0.21.jar
   212574  06-27-2024 08:40   modules/org/apache/groovy/groovy-all/main/groovy-xml-4.0.21.jar
    15580  06-27-2024 08:40   modules/org/apache/groovy/groovy-all/main/groovy-datetime-4.0.21.jar
     7886  06-27-2024 08:40   modules/org/apache/groovy/groovy-all/main/groovy-dateutil-4.0.21.jar
    92239  06-27-2024 08:40   modules/org/apache/groovy/groovy-all/main/groovy-templates-4.0.21.jar
   130012  06-27-2024 08:40   modules/org/apache/groovy/groovy-all/main/groovy-json-4.0.21.jar
      644  06-27-2024 08:40   modules/org/apache/groovy/groovy-all/main/module.xml
    16922  06-27-2024 08:40   modules/org/apache/groovy/groovy-all/main/groovy-jsr223-4.0.21.jar
   130012  06-27-2024 08:40   modules/org/apache/groovy/groovy-json/main/groovy-json-4.0.21.jar
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-datetime/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-datetime/main/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-templates/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-templates/main/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-dateutil/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-dateutil/main/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy/main/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-jsr223/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-jsr223/main/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-xml/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-xml/main/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-json/
        0  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-json/main/
    15580  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-datetime/main/groovy-datetime-4.0.21.jar
    92239  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-templates/main/groovy-templates-4.0.21.jar
     7886  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-dateutil/main/groovy-dateutil-4.0.21.jar
  7601299  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy/main/groovy-4.0.21.jar
    16922  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-jsr223/main/groovy-jsr223-4.0.21.jar
   212574  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-xml/main/groovy-xml-4.0.21.jar
  7601299  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-4.0.21.jar
   212574  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-xml-4.0.21.jar
    15580  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-datetime-4.0.21.jar
     7886  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-dateutil-4.0.21.jar
    92239  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-templates-4.0.21.jar
   130012  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-json-4.0.21.jar
      644  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/module.xml
    16922  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-all/main/groovy-jsr223-4.0.21.jar
   130012  06-27-2024 08:40   server/wildfly-31.0.0.Final/modules/org/apache/groovy/groovy-json/main/groovy-json-4.0.21.jar
  7601299  04-06-2024 06:37   lib/groovy-4.0.21.jar
    16922  06-24-2024 14:49   lib/groovy-jsr223-4.0.21.jar
   130012  04-06-2024 06:50   lib/groovy-json-4.0.21.jar
   212574  04-06-2024 06:59   lib/groovy-xml-4.0.21.jar
    92239  06-24-2024 14:49   lib/groovy-templates-4.0.21.jar
     7886  04-06-2024 06:46   lib/groovy-dateutil-4.0.21.jar
    15580  06-24-2024 14:51   lib/groovy-datetime-4.0.21.jar


 unzip -l distro/wls/distro/target/camunda-ee-oracle-wls-7.22.0-SNAPSHOT.zip | grep groovy
  7601299  04-06-2024 06:37   modules/lib/groovy-4.0.21.jar
    16922  06-24-2024 14:49   modules/lib/groovy-jsr223-4.0.21.jar
   130012  04-06-2024 06:50   modules/lib/groovy-json-4.0.21.jar
   212574  04-06-2024 06:59   modules/lib/groovy-xml-4.0.21.jar
    92239  06-24-2024 14:49   modules/lib/groovy-templates-4.0.21.jar
     7886  04-06-2024 06:46   modules/lib/groovy-dateutil-4.0.21.jar
    15580  06-24-2024 14:51   modules/lib/groovy-datetime-4.0.21.jar


 

Will run smoke test on all distro after PR is merged.

venetrius avatar Jul 02 '24 13:07 venetrius

Hi @gbetances089 QA Note: This task changes the version of Groovy libraries that we ship with Camunda.

2 scenarios that needs extra attention during testing:

Test backwards compatibility with the extension methods for the java.util.Date class. groovy-dateutil library is added for this purpose.

Can use this groovyTest.bpmn.txt diagram for testing. (Github does not let me upload *.pbmn so I added a .txt suffix)

Are users able to downgrade to Groovy 2.4.4 by replacing the Groovy libraries?

To run legacy scripts users should be able to replace Groovy 4.0.x jar-s with Groovy 2.4.4 as it is explained in the migration guide You can use this bpmn shouldFailGroovy4.bpmn.txt for testing, it fails with groovy4 but works with Groovy 2.4.4.

venetrius avatar Aug 15 '24 06:08 venetrius