From 77ddcb01aaaf06527a1b77b30288a474b887f21b Mon Sep 17 00:00:00 2001 From: jan-vcapgemini <59438728+jan-vcapgemini@users.noreply.github.com> Date: Thu, 23 May 2024 17:13:13 +0200 Subject: [PATCH] #236: fixed Eclipse plugin installation (#333) --- .../tools/ide/tool/eclipse/Eclipse.java | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/eclipse/Eclipse.java b/cli/src/main/java/com/devonfw/tools/ide/tool/eclipse/Eclipse.java index 917f55d01..7ac4b7e39 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/eclipse/Eclipse.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/eclipse/Eclipse.java @@ -1,13 +1,5 @@ package com.devonfw.tools.ide.tool.eclipse; -import java.io.File; -import java.io.RandomAccessFile; -import java.nio.channels.FileLock; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.Set; - import com.devonfw.tools.ide.cli.CliArgument; import com.devonfw.tools.ide.cli.CliException; import com.devonfw.tools.ide.common.Tag; @@ -21,6 +13,14 @@ import com.devonfw.tools.ide.tool.ide.PluginDescriptor; import com.devonfw.tools.ide.tool.java.Java; +import java.io.File; +import java.io.RandomAccessFile; +import java.nio.channels.FileLock; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Set; + /** * {@link IdeToolCommandlet} for Eclipse. */ @@ -40,8 +40,7 @@ public Eclipse(IdeContext context) { protected void runIde(String... args) { install(true); - runEclipse(ProcessMode.BACKGROUND, - CliArgument.prepend(args, "gui", "-showlocation", this.context.getIdeHome().getFileName().toString())); + runEclipse(ProcessMode.BACKGROUND, CliArgument.prepend(args, "gui", "-showlocation", this.context.getIdeHome().getFileName().toString())); } @Override @@ -68,14 +67,13 @@ protected ProcessResult runEclipse(ProcessMode processMode, String... args) { pc.executable(toolPath); Path configurationPath = getPluginsInstallationPath().resolve("configuration"); this.context.getFileAccess().mkdirs(configurationPath); + pc.addArg("-data").addArg(this.context.getWorkspacePath()); + pc.addArg("-clean"); + pc.addArg("-keyring").addArg(this.context.getUserHome().resolve(".eclipse").resolve(".keyring")); + pc.addArg("-configuration").addArg(configurationPath); if (processMode == ProcessMode.DEFAULT_CAPTURE) { pc.addArg("-consoleLog").addArg("-nosplash"); - } else { - pc.addArg("-clean"); - pc.addArg("-data").addArg(this.context.getWorkspacePath()); - pc.addArg("-keyring").addArg(this.context.getUserHome().resolve(".eclipse").resolve(".keyring")); } - pc.addArg("-configuration").addArg(configurationPath); // TODO ability to use different Java version Path javaPath = getCommandlet(Java.class).getToolBinPath(); pc.addArg("-vm").addArg(javaPath); @@ -88,8 +86,8 @@ protected ProcessResult runEclipse(ProcessMode processMode, String... args) { @Override public void installPlugin(PluginDescriptor plugin) { - ProcessResult result = runEclipse(ProcessMode.DEFAULT_CAPTURE, "org.eclipse.equinox.p2.director", "-repository", - plugin.getUrl(), "-installIU", plugin.getId()); + ProcessResult result = runEclipse(ProcessMode.DEFAULT_CAPTURE, "-application", "org.eclipse.equinox.p2.director", "-repository", plugin.getUrl(), + "-installIU", plugin.getId()); if (result.isSuccessful()) { for (String line : result.getOut()) { if (line.contains("Overall install request is satisfiable")) { @@ -97,8 +95,7 @@ public void installPlugin(PluginDescriptor plugin) { } } } - this.context.error("Failed to install plugin {} ({}): exit code was {}", plugin.getName(), plugin.getId(), - result.getExitCode()); + this.context.error("Failed to install plugin {} ({}): exit code was {}", plugin.getName(), plugin.getId(), result.getExitCode()); log(IdeLogLevel.WARNING, result.getOut()); log(IdeLogLevel.ERROR, result.getErr()); }