Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-12103

Support Java 15

    XMLWordPrintable

Details

    • Feature Request
    • Resolution: Fixed
    • L3 - Default
    • 7.16.0, 7.16.0-alpha3
    • None
    • engine

    Description

      User Story (Required on creation):

      • As I user, I want to run the platform with Java 15.

      Functional Requirements (Required before implementation):

      • The engine works with Java 15.
      • The platform (and camunda-spin) is tested against Java 15. (TODO: update INFRA-1548 ticket)
      • A migration guide exists for switching to GraalVM JS from Nashorn (which is not part of the JDK from version 15) for JavaScript script tasks.

      Technical Requirements (Required before implementation):

      Tests containing JavaScript tasks
      • Create profile with GraalVM JS dependencies and compatibility mode properties to be used in the jdk 15 jobs. See list of tests here.
      • Reopen OB-13 or create a new one to add the UPL licenses to the Stop&Go list.
      Invoice example
      • Migrate the scripts to delegates
      Distros
      • Include Graaljs and its dependencies so that users do not have to add the modules themselves (triple-check that this is okay from the license side )
      • Decide what we do for embedded engine/Spring Boot setup (migration guide vs having a dependency in the engine)
      Documentation
      • Determine the best approach for how users can configure GraalVM with Nashorn compatbility mode
        • Option 1 (preferred based on spike):
          1. Users add system parameters to application startup if they want Nashorn compatbility mode
        • Option 2:
          1. Camunda provides a process engine plugin that does the configuration on the script engine level (during the spike, we were not able to configure this correctly this way)
      • Create migration guide for the supported distros and different setups (embedded/shared engine) so the users can easily locate which sections are relevant to them during migration
        • Explain how to enable Nashorn compatibility mode
        • Add section for potential differences between the two script engines (see comment for details). Add disclaimer that more differences might be present and it’s recommended to users to test additionally their scripts before/during the migration
        • Add reference to the GraalVM JS migration guide for further details
        • Mention the GraalVM JS dependencies to https://docs.camunda.org/manual/develop/introduction/third-party-libraries/#process-engine
      • So far we don't have so much documentation on script engine usage. Document how to add/use script engines with some examples, including GraalVM JS. Also considering users who create JavaScript script tasks from now on (without Nashorn compatibility mode).
      Other examples using JavaScript in script tasks
      • We can consider switching to Groovy scripts or write down that the example is not supported for JDK 15. See list of examples here.

      Limitations of Scope (Optional):

      Hints (Optional):

      mgm-controller-panel

        This is the controller panel for Smart Panels app

        Attachments

          Issue Links

            Activity

              People

                hariharan.parasuraman Hariharan Parasuraman
                thorben.lindhauer Thorben Lindhauer
                Tobias Metzke-Bernstein Tobias Metzke-Bernstein
                Nikola Koevski Nikola Koevski
                Hariharan Parasuraman Hariharan Parasuraman
                Votes:
                3 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:

                  Salesforce