| October 12, 2026

One of our clients wants to develop in Java 25 with the IBM EWM client integrated in Eclipse. However, the latest public Jazz release, 7.2, supports Eclipse 2025-06 at most, which does not handle Java 25. Version 7.3, not yet released as a final version (only milestones are downloadable), appears to be compatible with Eclipse releases from 2025-09 to 2026-09 — but the p2 installation of the EWM client does not work out of the box on them. Here is the cause, and the solution we implemented.

Please note: the 7.3 milestone can be downloaded and tested, but it is not for production use. The procedure below is also a workaround that is not supported by IBM: validate it in your own environment.

In short

  • Symptom: installing the EWM 7.3 client on Eclipse 2025-09 / 2026-03 / 2026-06 stops on a missing component: com.google.javascript.jscomp.
  • Cause: this OSGi bundle (Google Closure Compiler) is no longer available from the Eclipse Orbit repositories, and the Maven Central JAR is not an OSGi bundle.
  • Solution: turn the Maven Central JAR into an OSGi bundle, publish it in a small local p2 repository, and give it to p2.director alongside the EWM repository.
  • Result: the client installs and the bundles reach the RESOLVED / STARTING state. The same local repository was reused for Eclipse 2026-03 and 2026-06.

1. Context: why a recent Eclipse

Jazz 7.2Jazz 7.3 (milestone)
Compatible Eclipseup to 2025-062025-09 to 2026-09
Java 25 in Eclipsenoyes

To work in Java 25 you therefore need Eclipse 2025-09 or later, and hence an EWM 7.3 client.

2. The symptom

Whether through the UI (Install New Software) or from the command line with p2.director, the resolver stops with:

Cannot complete the install because one or more required items could not be found.
  Software being installed: IBM Engineering Workflow Management Client Feature 7.3.0
  (com.ibm.team.rtc.client.feature.feature.group)
  Missing requirement: EWM Eclipse Client Script Support (com.ibm.team.rtc.common.scriptengine)
    requires 'osgi.bundle; com.google.javascript.jscomp 0.0.0' but it could not be found

3. The cause

The com.ibm.team.rtc.common.scriptengine module relies on the Google Closure Compiler. Historically, this component was distributed by the Eclipse Orbit project under the OSGi name com.google.javascript.jscomp. Three things block the installation:

  1. The historical Orbit repositories no longer respond: old build URLs return 404 errors.
  2. The Maven Central JAR is not an OSGi bundle: com.google.javascript:closure-compiler is a plain Java archive, with no Bundle-SymbolicName or Bundle-ManifestVersion. Equinox cannot resolve it.
  3. The dropins folder is not enough: placing a JAR there does not expose its capabilities to the p2 engine when it computes the dependencies of an installation.

4. The strategy

Without touching IBM’s official repository, we satisfied the resolver in three steps:

  1. fetch the Closure Compiler JAR from Maven Central;
  2. add an OSGi manifest declaring Bundle-SymbolicName: com.google.javascript.jscomp and the exported packages;
  3. publish the result into a local p2 repository (content.jar and artifacts.jar) with the publisher tool built into Eclipse.

5. The procedure (PowerShell)

The paths below are examples: adapt them to your machine. A JDK is required: the jar command is used to add the OSGi manifest to the JAR (step 2).

Step 1 — Download the JAR

The artifact used is com.google.javascript:closure-compiler:v20160315.

$workDir = "C:\temp\osgi-patch"
New-Item -ItemType Directory -Path $workDir -Force | Out-Null
Set-Location $workDir

$jarUrl = "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler/v20160315/closure-compiler-v20160315.jar"
Invoke-WebRequest -Uri $jarUrl -OutFile "closure-raw.jar"

Step 2 — Make it an OSGi bundle

$lines = @(
    "Manifest-Version: 1.0",
    "Bundle-ManifestVersion: 2",
    "Bundle-Name: Google Closure Compiler",
    "Bundle-SymbolicName: com.google.javascript.jscomp",
    "Bundle-Version: 20160315.0.0",
    "Export-Package: com.google.javascript.jscomp,com.google.javascript.rhino",
    "Bundle-RequiredExecutionEnvironment: JavaSE-11",
    ""
)
New-Item -ItemType Directory -Path "META-INF" -Force | Out-Null
[System.IO.File]::WriteAllLines("$workDir\META-INF\MANIFEST.MF", $lines, [System.Text.Encoding]::ASCII)

$pluginsDir = "$workDir\repo\plugins"
New-Item -ItemType Directory -Path $pluginsDir -Force | Out-Null

Copy-Item "$workDir\closure-raw.jar" "$workDir\temp.jar" -Force
& jar ufm "$workDir\temp.jar" "$workDir\META-INF\MANIFEST.MF"
Move-Item "$workDir\temp.jar" "$pluginsDir\com.google.javascript.jscomp_20160315.0.0.jar" -Force

The manifest must be written in ASCII, with a trailing blank line: this is a requirement of the format.

Step 3 — Publish the p2 metadata

We use the FeaturesAndBundlesPublisher application, shipped with Eclipse, to generate content.jar and artifacts.jar:

cd "C:\Eclipse\eclipse-jee-2025-09-R"

.\eclipsec.exe -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher `
  -metadataRepository "file:/C:/temp/osgi-patch/repo" `
  -artifactRepository "file:/C:/temp/osgi-patch/repo" `
  -bundles "C:\temp\osgi-patch\repo\plugins" `
  -compress -publishArtifacts

Expected output: Generation completed with success. We then check that the installable unit is visible:

$patchUri = [System.Uri]::new("C:\temp\osgi-patch\repo").AbsoluteUri
.\eclipsec.exe -application org.eclipse.equinox.p2.director -repository "$patchUri" -list
# com.google.javascript.jscomp=20160315.0.0

Step 4 — Install the EWM 7.3 client

We give p2.director two repositories at once: the ZIP of the EWM client p2 repository (through the jar:file: protocol) and our local repository.

$zipPath    = "C:\Sources\Jazz\EWM-Client-p2Repo-7.3.0M7.zip"
$ewmJarUri  = "jar:$([System.Uri]::new($zipPath).AbsoluteUri)!/"
$patchUri   = [System.Uri]::new("C:\temp\osgi-patch\repo").AbsoluteUri

# 1. Dry run, nothing is written
.\eclipsec.exe -application org.eclipse.equinox.p2.director `
  -repository "$ewmJarUri,$patchUri" `
  -installIU com.ibm.team.rtc.client.feature.feature.group `
  -destination "$PWD" `
  -verifyOnly

# 2. Actual installation
.\eclipsec.exe -application org.eclipse.equinox.p2.director `
  -repository "$ewmJarUri,$patchUri" `
  -installIU com.ibm.team.rtc.client.feature.feature.group `
  -destination "$PWD"

Result:

Installing com.ibm.team.rtc.client.feature.feature.group 7.3.0.202606121734.
Operation completed in 41698 ms.

6. Checking in the OSGi console

After installation, we checked the bundle states directly in Equinox:

.\eclipse.exe -console -noSplash
osgi> ss com.ibm.team.rtc.common.scriptengine
id      State       Bundle
1216    STARTING    com.ibm.team.rtc.common.scriptengine_3.1.1800.202603301930

osgi> lb com.google.javascript.jscomp
id      State       Bundle
1221    RESOLVED    com.google.javascript.jscomp_20160315.0.0

The scriptengine bundle, blocked until then, is now resolved: the dependency chain is complete.

7. Reusing the repository

The osgi-patch/repo folder is a self-contained, reusable p2 repository. We simply referenced it to provision Eclipse 2026-03 and 2026-06 as well, with no extra work. Keep it together with the EWM client ZIP: that is what makes the installation reproducible on other machines.

8. Caveats

  • Unsupported: this is a workaround. If something goes wrong, IBM has no reason to acknowledge it.
  • Old version: Closure Compiler v20160315 is the one EWM historically expected; we did not replace it with a newer release.
  • Milestone, not for production: 7.3 is not final. The final release may fix the problem, in which case this local repository becomes unnecessary.
  • Functional check: the RESOLVED state proves the dependency is satisfied, not that every scripting feature of the client has been tested.

Need help with your Jazz environment?

EWM developer workstation setup, Eclipse / Java compatibility, plugin packaging: contact us.

Sources

Stay informed

Technical insights and IBM Jazz ELM news, delivered straight to your inbox.

We could not confirm your subscription.
Your subscription is confirmed.