Repository navigation
Drop obsolete ui.terminal.tm bundle and dynamic terminal bundle loading - #471
Dietrich Travkin (travkin79) wants to merge 19 commits into
Conversation
b75c4ed to
3ef376e
Compare
There was a problem hiding this comment.
🟡 Changes recommended
The terminal provider lacks startup configuration needed to make terminal tools available, and the Azure nightly build still selects Java 17 despite the new Java 21 requirement.
2 open issues
What changed in this PR
This PR builds on #368’s Eclipse 2025-12 and Java 21 migration, simplifying GitHub Copilot for Eclipse to use only the modern terminal integration.
Changes:
- Removes the legacy TM Terminal bundle, dynamic bundle installation, and missing-dependency dialog.
- Packages the modern terminal provider in the feature and updates terminal view identifiers.
- Consolidates target definitions and aligns build, launch, project settings, and documentation with Java 21.
| File | Description |
|---|---|
target-tm-terminal.target |
Removes the legacy terminal target. |
target-terminal.target |
Removes the superseded modern terminal target. |
target-platforms/2025-12.target |
Adds the consolidated Eclipse 2025-12 target. |
pom.xml |
Updates the target and removes the legacy module. |
launch/Verify Copilot for Eclipse.launch |
Adds a Java 21 Maven verification launch. |
launch/plugin_debug_configuration.launch |
Switches debugging to Java 21. |
CONTRIBUTING.md |
Updates prerequisites and terminal setup documentation. |
com.microsoft.copilot.eclipse.ui/terminal-bundles/.gitkeep |
Removes the embedded-bundle directory placeholder. |
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/UiConstants.java |
Removes the terminal dependency guide constant. |
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/perspectives/CopilotPerspectiveFactory.java |
Uses modern terminal view identifiers. |
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/dialogs/MissingTerminalDependenciesDialog.java |
Deletes the missing-dependency dialog. |
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/dialogs/messages.properties |
Removes obsolete dialog strings. |
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/dialogs/Messages.java |
Removes obsolete dialog message fields. |
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/chat/services/AgentToolService.java |
Removes missing-dependency notifications. |
com.microsoft.copilot.eclipse.ui/pom.xml |
Removes terminal JAR copying. |
com.microsoft.copilot.eclipse.ui/META-INF/MANIFEST.MF |
Requires Java 21. |
com.microsoft.copilot.eclipse.ui/build.properties |
Stops packaging embedded terminal JARs. |
com.microsoft.copilot.eclipse.ui/.settings/org.eclipse.jdt.core.prefs |
Sets Java 21 compilation. |
com.microsoft.copilot.eclipse.ui/.settings/org.eclipse.core.resources.prefs |
Sets UTF-8 encoding. |
com.microsoft.copilot.eclipse.ui/.classpath |
Uses the Java 21 runtime container. |
com.microsoft.copilot.eclipse.ui.test/src/com/microsoft/copilot/eclipse/ui/CompatibilityNoticeTest.java |
Removes the deleted terminal preference setup. |
com.microsoft.copilot.eclipse.ui.test/META-INF/MANIFEST.MF |
Requires Java 21 for UI tests. |
com.microsoft.copilot.eclipse.ui.test/build.properties |
Normalizes source and output paths. |
com.microsoft.copilot.eclipse.ui.test/.settings/org.eclipse.jdt.core.prefs |
Sets Java 21 compilation. |
com.microsoft.copilot.eclipse.ui.test/.settings/org.eclipse.core.resources.prefs |
Sets UTF-8 encoding. |
com.microsoft.copilot.eclipse.ui.test/.classpath |
Uses the Java 21 runtime container. |
com.microsoft.copilot.eclipse.ui.terminal/pom.xml |
Uses the consolidated target platform. |
com.microsoft.copilot.eclipse.ui.terminal/META-INF/MANIFEST.MF |
Requires Java 21. |
com.microsoft.copilot.eclipse.ui.terminal/build.properties |
Aligns output with target/classes. |
com.microsoft.copilot.eclipse.ui.terminal/.settings/org.eclipse.jdt.core.prefs |
Sets Java 21 compilation. |
com.microsoft.copilot.eclipse.ui.terminal/.settings/org.eclipse.core.resources.prefs |
Sets UTF-8 encoding. |
com.microsoft.copilot.eclipse.ui.terminal/.classpath |
Uses the Java 21 runtime container. |
com.microsoft.copilot.eclipse.ui.terminal.tm/src/com/microsoft/copilot/eclipse/ui/terminal/tm/RunInTerminalTool.java |
Deletes the legacy terminal implementation. |
com.microsoft.copilot.eclipse.ui.terminal.tm/pom.xml |
Deletes the legacy module build. |
com.microsoft.copilot.eclipse.ui.terminal.tm/OSGI-INF/component.xml |
Deletes the legacy service registration. |
com.microsoft.copilot.eclipse.ui.terminal.tm/META-INF/MANIFEST.MF |
Deletes the legacy bundle manifest. |
com.microsoft.copilot.eclipse.ui.terminal.tm/build.properties |
Deletes legacy packaging settings. |
com.microsoft.copilot.eclipse.ui.terminal.tm/.settings/org.eclipse.m2e.core.prefs |
Deletes legacy Maven preferences. |
com.microsoft.copilot.eclipse.ui.terminal.tm/.settings/org.eclipse.jdt.core.prefs |
Deletes legacy compiler preferences. |
com.microsoft.copilot.eclipse.ui.terminal.tm/.project |
Deletes the legacy Eclipse project definition. |
com.microsoft.copilot.eclipse.ui.terminal.tm/.classpath |
Deletes the legacy classpath. |
com.microsoft.copilot.eclipse.ui.terminal.tm/.checkstyle |
Deletes legacy Checkstyle settings. |
com.microsoft.copilot.eclipse.ui.jobs/META-INF/MANIFEST.MF |
Requires Java 21. |
com.microsoft.copilot.eclipse.ui.jobs/build.properties |
Aligns output with target/classes. |
com.microsoft.copilot.eclipse.ui.jobs/.settings/org.eclipse.jdt.core.prefs |
Sets Java 21 and enforces forbidden-reference errors. |
com.microsoft.copilot.eclipse.ui.jobs/.settings/org.eclipse.core.resources.prefs |
Sets UTF-8 encoding. |
com.microsoft.copilot.eclipse.ui.jobs/.classpath |
Updates the runtime and source path. |
com.microsoft.copilot.eclipse.ui.jobs.test/META-INF/MANIFEST.MF |
Requires Java 21 and adjusts JUnit dependencies. |
com.microsoft.copilot.eclipse.ui.jobs.test/.classpath |
Uses the Java 21 runtime container. |
com.microsoft.copilot.eclipse.terminal.api/src/com/microsoft/copilot/eclipse/terminal/api/TerminalServiceManager.java |
Retains service tracking while removing dynamic installation. |
com.microsoft.copilot.eclipse.terminal.api/META-INF/MANIFEST.MF |
Requires Java 21. |
com.microsoft.copilot.eclipse.terminal.api/build.properties |
Aligns output with target/classes. |
com.microsoft.copilot.eclipse.terminal.api/.settings/org.eclipse.jdt.core.prefs |
Sets Java 21 compilation. |
com.microsoft.copilot.eclipse.terminal.api/.settings/org.eclipse.core.resources.prefs |
Sets UTF-8 encoding. |
com.microsoft.copilot.eclipse.terminal.api/.classpath |
Uses the Java 21 runtime container. |
com.microsoft.copilot.eclipse.swtbot.test/test-plans/chat-send-receive/chat-send-receive.md |
Removes obsolete dialog-suppression documentation. |
com.microsoft.copilot.eclipse.swtbot.test/test-plans/byok/byok.md |
Removes obsolete dialog-suppression documentation. |
com.microsoft.copilot.eclipse.swtbot.test/src/com/microsoft/copilot/eclipse/swtbot/test/probe/ProbeRunner.java |
Removes suppression of the deleted terminal dialog. |
com.microsoft.copilot.eclipse.swtbot.test/META-INF/MANIFEST.MF |
Requires Java 21 for probes. |
com.microsoft.copilot.eclipse.swtbot.test/build.properties |
Normalizes source and output paths. |
com.microsoft.copilot.eclipse.swtbot.test/.settings/org.eclipse.jdt.core.prefs |
Sets Java 21 compilation. |
com.microsoft.copilot.eclipse.swtbot.test/.settings/org.eclipse.core.resources.prefs |
Sets UTF-8 encoding. |
com.microsoft.copilot.eclipse.swtbot.test/.classpath |
Uses the Java 21 runtime container. |
com.microsoft.copilot.eclipse.repository/category.xml |
Adds a category for language-server dependencies. |
com.microsoft.copilot.eclipse.feature/feature.xml |
Includes the modern terminal provider. |
com.microsoft.copilot.eclipse.core/src/com/microsoft/copilot/eclipse/core/Constants.java |
Removes the terminal dialog preference constant. |
com.microsoft.copilot.eclipse.core/META-INF/MANIFEST.MF |
Requires Java 21 and fixes an export friend-list separator. |
com.microsoft.copilot.eclipse.core/build.properties |
Normalizes source and output paths. |
com.microsoft.copilot.eclipse.core/.settings/org.eclipse.jdt.core.prefs |
Updates Java compilation and debug settings. |
com.microsoft.copilot.eclipse.core/.settings/org.eclipse.core.resources.prefs |
Sets UTF-8 encoding. |
com.microsoft.copilot.eclipse.core/.classpath |
Uses the Java 21 runtime container. |
com.microsoft.copilot.eclipse.core.test/META-INF/MANIFEST.MF |
Requires Java 21 for core tests. |
com.microsoft.copilot.eclipse.core.test/build.properties |
Normalizes source and output paths. |
com.microsoft.copilot.eclipse.core.test/.settings/org.eclipse.jdt.core.prefs |
Sets Java 21 compilation. |
com.microsoft.copilot.eclipse.core.test/.settings/org.eclipse.core.resources.prefs |
Sets UTF-8 encoding. |
com.microsoft.copilot.eclipse.core.test/.classpath |
Uses the Java 21 runtime container. |
com.microsoft.copilot.eclipse.core.agent.win32/META-INF/MANIFEST.MF |
Requires Java 21 for the Windows fragment. |
com.microsoft.copilot.eclipse.core.agent.macosx.x64/META-INF/MANIFEST.MF |
Requires Java 21 for the macOS x64 fragment. |
com.microsoft.copilot.eclipse.core.agent.macosx.aarch64/META-INF/MANIFEST.MF |
Requires Java 21 for the macOS ARM64 fragment. |
com.microsoft.copilot.eclipse.core.agent.linux.x64/META-INF/MANIFEST.MF |
Requires Java 21 for the Linux x64 fragment. |
com.microsoft.copilot.eclipse.core.agent.linux.aarch64/META-INF/MANIFEST.MF |
Requires Java 21 for the Linux ARM64 fragment. |
base.target |
Removes the superseded base target. |
.gitignore |
Removes the embedded terminal JAR ignore rule. |
.github/workflows/ci.yml |
Runs CI with JDK 21. |
.github/skills/ui-action/REFERENCE.md |
Updates dialog-suppression documentation. |
.github/copilot-instructions.md |
Updates platform guidance and removes legacy bundle documentation. |
Review effort: Balanced
| <plugin | ||
| id="com.microsoft.copilot.eclipse.ui.terminal" | ||
| version="0.0.0"/> |
There was a problem hiding this comment.
Not needed. Equinox auto-starts installed lazy bundles, so its DS component registers IRunInTerminalTool at startup. ensureStarted() was only needed for the former runtime installBundle approach.
Though, ui.test needed to include the terminal bundle, done now. I added a test verifying the bundle starts and provides the service. The SWTBot runtime and the dev launch configuration already include it.
Avoid "OSGi access rules not enforced by classpath access rules, which can lead to classloading errors at runtime."
Build the new target file for terminal.tm bundle (2024-12.target) similar to 2025-12.target and update docs.
See review comment microsoft#368 (comment)
Add separate LSP4E update site to target definition so that we can increase the LSP4E version without having to lift the Eclipse version.
This way, we'll always offer the right version of LSP4E and LSP4J bundles on our own update site.
…vider The 2025-12 target aggregates junit-jupiter versions up to 6.x. With only a minimum version constraint, ui.jobs.test resolved JUnit 6.x, which is outside Tycho 4.0.13's provider ranges, causing 'Could not determine test framework provider'. Bound junit-jupiter api/engine/params to [5.12.0,6.0.0) and add the engine bundle so the standalone test resolves a consistent 5.x set. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Make com.microsoft.copilot.eclipse.ui.terminal an ordinary plugin instead of an embedded JAR installed at runtime. Remove the obsolete code for dynamically installing terminal bundles via TerminalServiceManager . Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Include com.microsoft.copilot.eclipse.ui.terminal in the ui.test runtime and check that the lazily activated bundle starts without an explicit start() and registers IRunInTerminalTool. See microsoft#471 (comment) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The ui.test runtime now provides a terminal service, so the get-output test asserts the invalid-ID error and the run test no longer claims to cover the missing-service case. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
3ef376e to
0c0227a
Compare

This is a follow-up PR to PR #368 (contains all commits from it plus commits for this PR).
PR #368 upgrades the target platform to Eclipse 2025-12 and JDK 21.
As a follow-up task, this PR removes:
com.microsoft.copilot.eclipse.ui.terminal.tmbundlecom.microsoft.copilot.eclipse.ui.terminalor legacycom.microsoft.copilot.eclipse.ui.terminal.tm), since we'll now always load the modern terminal bundle using the Eclipse plug-in dependency mechanism.