Skip to content

Conversation

@dgriffon
Copy link
Member

fixes #556

Description

Embed graalvm libs with javascript module engine.
Provided version are the same as the one in Jahia.

        <graalvm.sdk.version>17.0.12</graalvm.sdk.version>
        <graalvm.languages.version>23.0.5</graalvm.languages.version>

Checklist

Source code

  • I've shared and documented any breaking change
  • I've reviewed and updated the jahia-depends

Tests

  • I've provided Unit and/or Integration Tests
  • I've updated the parent issue with required manual validations

Tip

Documentation to guide the reviews: How to do a code review

@dgriffon dgriffon requested a review from a team as a code owner December 15, 2025 12:22
Copilot AI review requested due to automatic review settings December 15, 2025 12:22
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR embeds GraalVM libraries directly into the javascript-modules-engine bundle instead of relying on them being provided by Jahia. The GraalVM SDK version 17.0.12 and languages version 23.0.5 are added as properties and used consistently across the module.

  • Defines GraalVM version properties at the root POM level
  • Changes graal-sdk dependency from provided scope to embedded, and adds additional GraalVM dependencies (truffle-api, js, regex) plus icu4j
  • Updates the bundle configuration to embed the new dependencies and marks them as ignored for unused dependency analysis

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
pom.xml Adds GraalVM version properties (SDK and languages versions)
javascript-modules-engine/pom.xml Updates Embed-Dependency configuration to include GraalVM libraries
javascript-modules-engine-java/pom.xml Changes graal-sdk from provided scope to embedded with explicit version, adds new GraalVM dependencies, and updates dependency analysis configuration

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

@jkevan jkevan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May be we should export the packages like they were exported by framework system from jahia core:

<Export-Package>
                            org.graalvm.*;version="${graalvm.languages.version}",
                            com.oracle.truffle.*;version="${graalvm.languages.version}",
                            com.oracle.js.*;version="${graalvm.languages.version}"
                        </Export-Package>

I see two potential argument in favor:

  • better release lifecycle since it's a module, we could upgrade library faster
  • since they were already exported from jahia core before this refactoring, it could be seen a breaking change not to exposing them anymore.

@dgriffon dgriffon force-pushed the feat-embed-graalvm-libs branch from 839476f to c3a04d2 Compare December 16, 2025 15:47
@dgriffon dgriffon merged commit 6da778e into main Dec 16, 2025
13 checks passed
@dgriffon dgriffon deleted the feat-embed-graalvm-libs branch December 16, 2025 17:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Embed GraalVM libraries instead of having them exposed by Jahia core

4 participants