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

Support Java 15

XMLWordPrintable

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

      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):

        This is the controller panel for Smart Panels app

          There are no Sub-Tasks for this issue.

              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

                Created:
                Updated:
                Resolved: