| 12. Oktober 2026
Einer unserer Kunden möchte in Java 25 mit dem in Eclipse integrierten IBM-EWM-Client entwickeln. Die aktuelle öffentliche Jazz-Version 7.2 unterstützt jedoch höchstens Eclipse 2025-06, das Java 25 nicht kennt. Die noch nicht final veröffentlichte Version 7.3 (nur Milestones sind herunterladbar) scheint mit Eclipse-Releases von 2025-09 bis 2026-09 kompatibel zu sein — doch die p2-Installation des EWM-Clients funktioniert dort nicht von Haus aus. Hier die Ursache und die Lösung, die wir umgesetzt haben.
Zur Beachtung: Der 7.3-Milestone ist herunterladbar und testbar, aber nicht für den Produktivbetrieb gedacht. Das nachfolgende Vorgehen ist zudem eine von IBM nicht unterstützte Umgehungslösung: Bitte in der eigenen Umgebung validieren.
Kurz gesagt
- Symptom: Die Installation des EWM-7.3-Clients in Eclipse 2025-09 / 2026-03 / 2026-06 bricht mit einer fehlenden Komponente ab:
com.google.javascript.jscomp. - Ursache: Dieses OSGi-Bundle (Google Closure Compiler) ist in den Eclipse-Orbit-Repositories nicht mehr verfügbar, und das JAR von Maven Central ist kein OSGi-Bundle.
- Lösung: Das Maven-Central-JAR in ein OSGi-Bundle umwandeln, in einem kleinen lokalen p2-Repository veröffentlichen und
p2.directorzusätzlich zum EWM-Repository übergeben. - Ergebnis: Der Client wird installiert, die Bundles erreichen den Zustand
RESOLVED/STARTING. Dasselbe lokale Repository wurde für Eclipse 2026-03 und 2026-06 wiederverwendet.
1. Kontext: Warum ein aktuelles Eclipse
| Jazz 7.2 | Jazz 7.3 (Milestone) | |
|---|---|---|
| Kompatibles Eclipse | bis 2025-06 | 2025-09 bis 2026-09 |
| Java 25 in Eclipse | nein | ja |
Für Java 25 braucht man also Eclipse 2025-09 oder neuer und damit einen EWM-7.3-Client.
2. Das Symptom
Ob über die Oberfläche (Install New Software) oder per Kommandozeile mit p2.director: Der Resolver bricht ab mit:
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. Die Ursache
Das Modul com.ibm.team.rtc.common.scriptengine stützt sich auf den Google Closure Compiler. Historisch wurde diese Komponente vom Projekt Eclipse Orbit unter dem OSGi-Namen com.google.javascript.jscomp bereitgestellt. Drei Punkte blockieren die Installation:
- Die historischen Orbit-Repositories antworten nicht mehr: Alte Build-URLs liefern 404-Fehler.
- Das JAR von Maven Central ist kein OSGi-Bundle:
com.google.javascript:closure-compilerist ein gewöhnliches Java-Archiv ohneBundle-SymbolicNameundBundle-ManifestVersion. Equinox kann es nicht auflösen. - Der Ordner
dropinsgenügt nicht: Ein dort abgelegtes JAR macht seine Capabilities der p2-Engine bei der Berechnung der Abhängigkeiten einer Installation nicht sichtbar.
4. Die Strategie
Ohne das offizielle IBM-Repository anzutasten, haben wir den Resolver in drei Schritten zufriedengestellt:
- das Closure-Compiler-JAR von Maven Central holen;
- ein OSGi-Manifest ergänzen, das
Bundle-SymbolicName: com.google.javascript.jscompund die exportierten Packages deklariert; - das Ergebnis mit dem in Eclipse enthaltenen Publisher in einem lokalen p2-Repository (
content.jarundartifacts.jar) veröffentlichen.
5. Das Vorgehen (PowerShell)
Die Pfade unten sind Beispiele: Bitte an den eigenen Rechner anpassen. Ein JDK ist erforderlich: Der Befehl jar fügt dem JAR das OSGi-Manifest hinzu (Schritt 2).
Schritt 1 — JAR herunterladen
Verwendet wird das Artefakt 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"
Schritt 2 — Zum OSGi-Bundle machen
$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
Das Manifest muss in ASCII mit abschließender Leerzeile geschrieben werden: Das verlangt das Format.
Schritt 3 — p2-Metadaten veröffentlichen
Mit der in Eclipse enthaltenen Anwendung FeaturesAndBundlesPublisher werden content.jar und artifacts.jar erzeugt:
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
Erwartete Ausgabe: Generation completed with success. Anschließend prüfen wir, ob die installierbare Einheit sichtbar ist:
$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
Schritt 4 — EWM-7.3-Client installieren
Wir übergeben p2.director zwei Repositories gleichzeitig: das ZIP des p2-Repositories des EWM-Clients (über das Protokoll jar:file:) und unser lokales 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. Testlauf, es wird nichts geschrieben
.\eclipsec.exe -application org.eclipse.equinox.p2.director `
-repository "$ewmJarUri,$patchUri" `
-installIU com.ibm.team.rtc.client.feature.feature.group `
-destination "$PWD" `
-verifyOnly
# 2. Tatsächliche Installation
.\eclipsec.exe -application org.eclipse.equinox.p2.director `
-repository "$ewmJarUri,$patchUri" `
-installIU com.ibm.team.rtc.client.feature.feature.group `
-destination "$PWD"
Ergebnis:
Installing com.ibm.team.rtc.client.feature.feature.group 7.3.0.202606121734.
Operation completed in 41698 ms.
6. Prüfung in der OSGi-Konsole
Nach der Installation haben wir die Bundle-Zustände direkt in Equinox kontrolliert:
.\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
Das zuvor blockierte Bundle scriptengine ist nun aufgelöst: Die Abhängigkeitskette ist vollständig.
7. Das Repository wiederverwenden
Der Ordner osgi-patch/repo ist ein eigenständiges, wiederverwendbares p2-Repository. Wir haben es einfach referenziert, um auch Eclipse 2026-03 und 2026-06 zu bestücken — ohne zusätzlichen Aufwand. Am besten bewahrt man es zusammen mit dem ZIP des EWM-Clients auf: So lässt sich die Installation auf anderen Rechnern reproduzieren.
8. Vorbehalte
- Nicht unterstützt: Es ist eine Umgehungslösung. Bei Problemen hat IBM keinen Anlass, sie anzuerkennen.
- Alte Version: Closure Compiler
v20160315ist die Version, die EWM historisch erwartete; wir haben sie nicht durch eine neuere ersetzt. - Milestone, nicht für Produktion: 7.3 ist nicht final. Die finale Version könnte das Problem beheben; dann wird dieses lokale Repository überflüssig.
- Funktionsprüfung: Der Zustand
RESOLVEDbelegt, dass die Abhängigkeit erfüllt ist, nicht dass jede Skriptfunktion des Clients getestet wurde.
Hilfe für Ihre Jazz-Umgebung?
Einrichtung von EWM-Entwicklerarbeitsplätzen, Kompatibilität Eclipse / Java, Plugin-Packaging: Kontaktieren Sie uns.