From 551f6f1a0837c504c7ac51d745bcc1f739354714 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Thu, 19 Mar 2026 13:10:33 +0100 Subject: [PATCH 01/14] #1724: initial Gui commandlet commit --- .../tools/ide/commandlet/GuiCommandlet.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java diff --git a/cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java b/cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java new file mode 100644 index 000000000..353054837 --- /dev/null +++ b/cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java @@ -0,0 +1,28 @@ +package com.devonfw.tools.ide.commandlet; + +import java.util.Set; + +import com.devonfw.tools.ide.common.Tag; +import com.devonfw.tools.ide.context.IdeContext; +import com.devonfw.tools.ide.tool.mvn.MvnArtifact; +import com.devonfw.tools.ide.tool.mvn.MvnBasedLocalToolCommandlet; + +/** + * Commandlet to launch the IDEasy GUI. + */ +public class GuiCommandlet extends MvnBasedLocalToolCommandlet { + + /** + * @param context the {@link IdeContext}. + * @param tool the {@link #getName() tool name}. + * @param artifact the {@link MvnArtifact}. + * @param tags the {@link #getTags() tags}. + */ + public GuiCommandlet(IdeContext context, String tool, MvnArtifact artifact, Set tags) { + + super(context, tool, artifact, tags); + addKeyword("gui"); + } + + +} From bbe114b86734ca8d7c76b3721cf8c87a4d43639c Mon Sep 17 00:00:00 2001 From: Lukas Faber Date: Fri, 20 Mar 2026 10:59:03 +0100 Subject: [PATCH 02/14] #1724: added Gui command and Tags/Hints --- .../ide/commandlet/CommandletManagerImpl.java | 2 +- .../tools/ide/commandlet/GuiCommandlet.java | 28 ----------- .../com/devonfw/tools/ide/common/Tag.java | 2 + .../com/devonfw/tools/ide/tool/gui/Gui.java | 50 +++++++++++++++++++ cli/src/main/resources/nls/Help.properties | 2 + cli/src/main/resources/nls/Help_de.properties | 2 + 6 files changed, 57 insertions(+), 29 deletions(-) delete mode 100644 cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java create mode 100644 cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java diff --git a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java index c44f5b740..59bda8001 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java +++ b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java @@ -30,6 +30,7 @@ import com.devonfw.tools.ide.tool.go.Go; import com.devonfw.tools.ide.tool.graalvm.GraalVm; import com.devonfw.tools.ide.tool.gradle.Gradle; +import com.devonfw.tools.ide.tool.gui.Gui; import com.devonfw.tools.ide.tool.helm.Helm; import com.devonfw.tools.ide.tool.intellij.Intellij; import com.devonfw.tools.ide.tool.jasypt.Jasypt; @@ -146,7 +147,6 @@ public CommandletManagerImpl(IdeContext context) { add(new Yarn(context)); add(new Corepack(context)); add(new Pip(context)); - add(new Go(context)); } /** diff --git a/cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java b/cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java deleted file mode 100644 index 353054837..000000000 --- a/cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.devonfw.tools.ide.commandlet; - -import java.util.Set; - -import com.devonfw.tools.ide.common.Tag; -import com.devonfw.tools.ide.context.IdeContext; -import com.devonfw.tools.ide.tool.mvn.MvnArtifact; -import com.devonfw.tools.ide.tool.mvn.MvnBasedLocalToolCommandlet; - -/** - * Commandlet to launch the IDEasy GUI. - */ -public class GuiCommandlet extends MvnBasedLocalToolCommandlet { - - /** - * @param context the {@link IdeContext}. - * @param tool the {@link #getName() tool name}. - * @param artifact the {@link MvnArtifact}. - * @param tags the {@link #getTags() tags}. - */ - public GuiCommandlet(IdeContext context, String tool, MvnArtifact artifact, Set tags) { - - super(context, tool, artifact, tags); - addKeyword("gui"); - } - - -} diff --git a/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java b/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java index 6ae92c6e0..462868bb8 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java +++ b/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java @@ -329,6 +329,8 @@ public final class Tag { /** {@link #Tag} for encryption. */ public static final Tag ENCRYPTION = create("encryption", CRYPTO); + public static final Tag GUI = create("gui", MISC); + private final String id; private final Tag parent; diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java new file mode 100644 index 000000000..dac265ed6 --- /dev/null +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -0,0 +1,50 @@ +package com.devonfw.tools.ide.tool.gui; + +import java.util.List; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.devonfw.tools.ide.common.Tag; +import com.devonfw.tools.ide.context.IdeContext; +import com.devonfw.tools.ide.process.ProcessContext; +import com.devonfw.tools.ide.process.ProcessMode; +import com.devonfw.tools.ide.tool.mvn.Mvn; +import com.devonfw.tools.ide.tool.mvn.MvnArtifact; +import com.devonfw.tools.ide.tool.mvn.MvnBasedLocalToolCommandlet; + +/** + * {@link MvnBasedLocalToolCommandlet} to launch the IDEasy GUI. + */ +public class Gui extends MvnBasedLocalToolCommandlet { + + private static final Logger LOG = LoggerFactory.getLogger(Gui.class); + + private final ProcessContext pc = this.context.newProcess(); + + private final Mvn mvn = this.context.getCommandletManager().getCommandlet(Mvn.class); + private static final MvnArtifact ARTIFACT = MvnArtifact.ofIdeasy("ide-gui", "*!", "tar.gz", "${os}-${arch}"); + + /** + * @param context the {@link IdeContext}. + */ + public Gui(IdeContext context) { + + super(context, "gui", ARTIFACT, Set.of(Tag.GUI)); + } + + @Override + protected void doRun() { + install(true); + + LOG.debug("Starting GUI via commandlet"); + + List args = List.of( + "exec:java", + "-Dexec.mainClass=com.devonfw.ide.gui.AppLauncher" + ); + + mvn.runTool(pc, ProcessMode.DEFAULT, args); + } +} diff --git a/cli/src/main/resources/nls/Help.properties b/cli/src/main/resources/nls/Help.properties index 758709d61..9f8e54210 100644 --- a/cli/src/main/resources/nls/Help.properties +++ b/cli/src/main/resources/nls/Help.properties @@ -41,6 +41,8 @@ cmd.graalvm=Tool commandlet for GraalVm (Java with native-image). cmd.graalvm.detail=GraalVM is a high-performance runtime that supports multiple languages and execution modes. Detailed documentation can be found at https://www.graalvm.org/docs/ cmd.gradle=Tool commandlet for Gradle (Build-Tool). cmd.gradle.detail=Gradle is a build automation tool for Java, Kotlin, and other JVM-based languages. Detailed documentation can be found at https://docs.gradle.org/ +cmd.gui=Tool commandlet for running the IDEasy GUI +cmd.gui.detail=This command will run the GUI version of IDEasy, opening up a more comprehensible project dashboard and allowing for easier management of your local IDEasy instance. cmd.helm=Tool commandlet for Helm (Kubernetes Package Manager). cmd.helm.detail=Helm is a package manager for Kubernetes that simplifies deploying and managing applications. Detailed documentation can be found at https://helm.sh/docs/ cmd.help=Prints this help. diff --git a/cli/src/main/resources/nls/Help_de.properties b/cli/src/main/resources/nls/Help_de.properties index e9e8fb846..a07fe8e12 100644 --- a/cli/src/main/resources/nls/Help_de.properties +++ b/cli/src/main/resources/nls/Help_de.properties @@ -41,6 +41,8 @@ cmd.graalvm=Werkzeug Kommando für GraalVm. cmd.graalvm.detail=GraalVM ist eine leistungsstarke Laufzeitumgebung, die mehrere Sprachen und Ausführungsmodi unterstützt. Detaillierte Dokumentation ist zu finden unter https://www.graalvm.org/docs/ cmd.gradle=Werkzeug Kommando für Gradle (Build-Tool). cmd.gradle.detail=Gradle ist ein Build-Automatisierungstool für Java, Kotlin und andere JVM-basierte Sprachen. Detaillierte Dokumentation ist zu finden unter https://docs.gradle.org/ +cmd.gui=Werkzeug Kommando, um die GUI von IDEasy zu öffnen. +cmd.gui.detail=Dieser Befehl startet die GUI-Version von IDEasy, öffnet ein übersichtlicheres Projekt-Dashboard und erleichtert die Verwaltung Ihrer lokalen IDEasy-Instanz. cmd.helm=Werkzeug Kommando für Helm (Kubernetes Package Manager). cmd.helm.detail=Helm ist ein Paketmanager für Kubernetes, der das Bereitstellen und Verwalten von Anwendungen vereinfacht. Detaillierte Dokumentation ist zu finden unter https://helm.sh/docs/ cmd.help=Zeigt diese Hilfe an. From a109b88655d22891ca3a791b0de00a9e612b076f Mon Sep 17 00:00:00 2001 From: laim2003 Date: Mon, 23 Mar 2026 16:48:31 +0100 Subject: [PATCH 03/14] #1724: -implemented basic java -jar execution --- .../com/devonfw/tools/ide/tool/gui/Gui.java | 31 ++++++++++++++----- gui/pom.xml | 19 ++++++++++++ 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index dac265ed6..f8a5e8e01 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -1,5 +1,6 @@ package com.devonfw.tools.ide.tool.gui; +import java.nio.file.Path; import java.util.List; import java.util.Set; @@ -8,11 +9,12 @@ import com.devonfw.tools.ide.common.Tag; import com.devonfw.tools.ide.context.IdeContext; -import com.devonfw.tools.ide.process.ProcessContext; import com.devonfw.tools.ide.process.ProcessMode; -import com.devonfw.tools.ide.tool.mvn.Mvn; +import com.devonfw.tools.ide.tool.ToolInstallRequest; +import com.devonfw.tools.ide.tool.java.Java; import com.devonfw.tools.ide.tool.mvn.MvnArtifact; import com.devonfw.tools.ide.tool.mvn.MvnBasedLocalToolCommandlet; +import com.devonfw.tools.ide.version.VersionRange; /** * {@link MvnBasedLocalToolCommandlet} to launch the IDEasy GUI. @@ -21,10 +23,9 @@ public class Gui extends MvnBasedLocalToolCommandlet { private static final Logger LOG = LoggerFactory.getLogger(Gui.class); - private final ProcessContext pc = this.context.newProcess(); + private static final MvnArtifact ARTIFACT = MvnArtifact.ofIdeasy("ide-gui", "*!", "jar", null); - private final Mvn mvn = this.context.getCommandletManager().getCommandlet(Mvn.class); - private static final MvnArtifact ARTIFACT = MvnArtifact.ofIdeasy("ide-gui", "*!", "tar.gz", "${os}-${arch}"); + private Java java; /** * @param context the {@link IdeContext}. @@ -34,17 +35,31 @@ public Gui(IdeContext context) { super(context, "gui", ARTIFACT, Set.of(Tag.GUI)); } + @Override + protected void installToolDependencies(ToolInstallRequest request) { + + super.installToolDependencies(request); + + LOG.debug("Installing ide-gui dependencies: {}", request.getToolPath()); + + java = this.context.getCommandletManager().getCommandlet(Java.class); + java.installAsDependency(VersionRange.of("25"), request); + } + @Override protected void doRun() { + install(true); LOG.debug("Starting GUI via commandlet"); + Path jarPath = getToolPath().resolve(ARTIFACT.getFilename()); + List args = List.of( - "exec:java", - "-Dexec.mainClass=com.devonfw.ide.gui.AppLauncher" + "-jar", + jarPath.toAbsolutePath().toString() ); - mvn.runTool(pc, ProcessMode.DEFAULT, args); + java.runTool(context.newProcess(), ProcessMode.DEFAULT, args); } } diff --git a/gui/pom.xml b/gui/pom.xml index c581b1dd0..57d9ed547 100644 --- a/gui/pom.xml +++ b/gui/pom.xml @@ -62,6 +62,25 @@ + + org.apache.maven.plugins + maven-shade-plugin + + + package + + shade + + + + + com.devonfw.ide.gui.AppLauncher + + + + + + org.openjfx javafx-maven-plugin From 6d291af661d5b96fa7bb59d1e7a470a78d34846f Mon Sep 17 00:00:00 2001 From: Lukas Faber Date: Mon, 23 Mar 2026 20:51:04 +0100 Subject: [PATCH 04/14] #1724: disabled extraction of jar --- .../java/com/devonfw/tools/ide/tool/gui/Gui.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index f8a5e8e01..7c1567c5f 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -23,7 +23,7 @@ public class Gui extends MvnBasedLocalToolCommandlet { private static final Logger LOG = LoggerFactory.getLogger(Gui.class); - private static final MvnArtifact ARTIFACT = MvnArtifact.ofIdeasy("ide-gui", "*!", "jar", null); + private static final MvnArtifact ARTIFACT = new MvnArtifact("ide-gui", "2026.04.001", "jar", ""); private Java java; @@ -39,13 +39,20 @@ public Gui(IdeContext context) { protected void installToolDependencies(ToolInstallRequest request) { super.installToolDependencies(request); - - LOG.debug("Installing ide-gui dependencies: {}", request.getToolPath()); + LOG.info(ARTIFACT.getDownloadUrl()); + LOG.info("Installing ide-gui dependencies: {}", request.getRequested().getVersion().toString()); java = this.context.getCommandletManager().getCommandlet(Java.class); java.installAsDependency(VersionRange.of("25"), request); } + @Override + protected boolean isExtract() { + + //return false to avoid extracting the downloaded GUI jar (as we will run the jar in doRun()) + return false; + } + @Override protected void doRun() { From b6f79cf18c9e7d2522b0499afebd2ae2bf3b19aa Mon Sep 17 00:00:00 2001 From: laim2003 Date: Thu, 26 Mar 2026 19:52:54 +0100 Subject: [PATCH 05/14] - #1724: Switched Gui.java to use LocalToolCommandlet - Implemented gui-launcher module to enable command line execution of GUI --- cli/pom.xml | 25 ++++++- .../com/devonfw/tools/ide/tool/gui/Gui.java | 48 +++++-------- gui-launcher/pom.xml | 69 +++++++++++++++++++ pom.xml | 2 + 4 files changed, 112 insertions(+), 32 deletions(-) create mode 100644 gui-launcher/pom.xml diff --git a/cli/pom.xml b/cli/pom.xml index 9fe7cd2bb..cc3ba074d 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -206,6 +206,30 @@ + + org.apache.maven.plugins + maven-antrun-plugin + 3.1.0 + + + copy-gui-pom + prepare-package + + run + + + + + + + + + + + @@ -303,5 +327,4 @@ - diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index 7c1567c5f..0fd93f258 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -1,72 +1,58 @@ package com.devonfw.tools.ide.tool.gui; -import java.nio.file.Path; import java.util.List; -import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.devonfw.tools.ide.common.Tag; +import com.devonfw.tools.ide.commandlet.Commandlet; import com.devonfw.tools.ide.context.IdeContext; import com.devonfw.tools.ide.process.ProcessMode; -import com.devonfw.tools.ide.tool.ToolInstallRequest; -import com.devonfw.tools.ide.tool.java.Java; -import com.devonfw.tools.ide.tool.mvn.MvnArtifact; +import com.devonfw.tools.ide.tool.mvn.Mvn; import com.devonfw.tools.ide.tool.mvn.MvnBasedLocalToolCommandlet; -import com.devonfw.tools.ide.version.VersionRange; +import com.devonfw.tools.ide.variable.IdeVariables; /** * {@link MvnBasedLocalToolCommandlet} to launch the IDEasy GUI. */ -public class Gui extends MvnBasedLocalToolCommandlet { +public class Gui extends Commandlet { private static final Logger LOG = LoggerFactory.getLogger(Gui.class); - private static final MvnArtifact ARTIFACT = new MvnArtifact("ide-gui", "2026.04.001", "jar", ""); - - private Java java; + //TODO: implement constant in sync with maven property gui.relative_pom_path + private static final String POM_PATH = "gui-execution"; /** * @param context the {@link IdeContext}. */ public Gui(IdeContext context) { - super(context, "gui", ARTIFACT, Set.of(Tag.GUI)); + super(context); + addKeyword("gui"); } - @Override - protected void installToolDependencies(ToolInstallRequest request) { - - super.installToolDependencies(request); - LOG.info(ARTIFACT.getDownloadUrl()); - LOG.info("Installing ide-gui dependencies: {}", request.getRequested().getVersion().toString()); - - java = this.context.getCommandletManager().getCommandlet(Java.class); - java.installAsDependency(VersionRange.of("25"), request); - } @Override - protected boolean isExtract() { + public String getName() { - //return false to avoid extracting the downloaded GUI jar (as we will run the jar in doRun()) - return false; + return "gui"; } + @Override protected void doRun() { - install(true); - LOG.debug("Starting GUI via commandlet"); - Path jarPath = getToolPath().resolve(ARTIFACT.getFilename()); + Mvn mvn = context.getCommandletManager().getCommandlet(Mvn.class); List args = List.of( - "-jar", - jarPath.toAbsolutePath().toString() + "-f", + IdeVariables.IDE_ROOT.get(context).toString() + "/_ide/installation/" + POM_PATH + "/pom.xml", + "exec:java", + "-Dexec.mainClass=com.devonfw.tools.ide.gui.AppLauncher" ); - java.runTool(context.newProcess(), ProcessMode.DEFAULT, args); + mvn.runTool(context.newProcess(), ProcessMode.DEFAULT, args); } } diff --git a/gui-launcher/pom.xml b/gui-launcher/pom.xml new file mode 100644 index 000000000..c3d0cd147 --- /dev/null +++ b/gui-launcher/pom.xml @@ -0,0 +1,69 @@ + + + 4.0.0 + + com.devonfw.tools.IDEasy.dev + ide + dev-SNAPSHOT + + com.devonfw.tools.IDEasy + ide-gui-launcher + ${revision} + pom + Launcher for IDEasy GUI + + + + com.devonfw.tools.IDEasy + ide-gui + ${revision} + jar + + + + + 25 + 25 + UTF-8 + + + + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + com.devonfw.ide.gui.AppLauncher + + + + maven-resources-plugin + 3.3.1 + + + copy-gui-launcher-flattened-pom + prepare-package + + copy-resources + + + ${project.build.directory}/package/gui + + + ${project.basedir} + + .flattened-pom.xml + + + + + + + + + + + diff --git a/pom.xml b/pom.xml index d4651d71a..d7e6450fe 100644 --- a/pom.xml +++ b/pom.xml @@ -31,6 +31,7 @@ 3.7.1 3.6.1 24.2.1 + gui-execution @@ -174,6 +175,7 @@ documentation cli gui + gui-launcher url-updater security From 3d2fe9f23279203307854233052a594c8a42dce1 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Fri, 27 Mar 2026 12:05:37 +0100 Subject: [PATCH 06/14] - #1724: Switched gui maven configuration from maven-shade (fat jar) to maven-jar-plugin (slim jar) - Corrected erroneous classPath in Gui commandlet --- .../java/com/devonfw/tools/ide/tool/gui/Gui.java | 2 +- gui/pom.xml | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index 0fd93f258..4e50a5f89 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -50,7 +50,7 @@ protected void doRun() { "-f", IdeVariables.IDE_ROOT.get(context).toString() + "/_ide/installation/" + POM_PATH + "/pom.xml", "exec:java", - "-Dexec.mainClass=com.devonfw.tools.ide.gui.AppLauncher" + "-Dexec.mainClass=com.devonfw.tools.gui.AppLauncher" ); mvn.runTool(context.newProcess(), ProcessMode.DEFAULT, args); diff --git a/gui/pom.xml b/gui/pom.xml index 57d9ed547..31eb2e6ba 100644 --- a/gui/pom.xml +++ b/gui/pom.xml @@ -64,19 +64,20 @@ org.apache.maven.plugins - maven-shade-plugin + maven-jar-plugin package - shade + jar - - + + com.devonfw.ide.gui.AppLauncher - - + true + + From 4af27c0822cc1b638684740e3c3f47ea51e8872d Mon Sep 17 00:00:00 2001 From: laim2003 Date: Fri, 27 Mar 2026 14:42:45 +0100 Subject: [PATCH 07/14] #1724: minor adjustments in CommandletManagerImpl.java to accomodate new GUI commandlet --- .../com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java | 2 +- cli/src/main/java/com/devonfw/tools/ide/common/Tag.java | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java index 59bda8001..329b4054b 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java +++ b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java @@ -27,7 +27,6 @@ import com.devonfw.tools.ide.tool.eclipse.Eclipse; import com.devonfw.tools.ide.tool.gcviewer.GcViewer; import com.devonfw.tools.ide.tool.gh.Gh; -import com.devonfw.tools.ide.tool.go.Go; import com.devonfw.tools.ide.tool.graalvm.GraalVm; import com.devonfw.tools.ide.tool.gradle.Gradle; import com.devonfw.tools.ide.tool.gui.Gui; @@ -147,6 +146,7 @@ public CommandletManagerImpl(IdeContext context) { add(new Yarn(context)); add(new Corepack(context)); add(new Pip(context)); + add(new Gui(context)); } /** diff --git a/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java b/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java index 462868bb8..6ae92c6e0 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java +++ b/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java @@ -329,8 +329,6 @@ public final class Tag { /** {@link #Tag} for encryption. */ public static final Tag ENCRYPTION = create("encryption", CRYPTO); - public static final Tag GUI = create("gui", MISC); - private final String id; private final Tag parent; From 87ebd01eeee117c977f4eb1333df8b6e64f6112d Mon Sep 17 00:00:00 2001 From: laim2003 Date: Fri, 27 Mar 2026 14:45:08 +0100 Subject: [PATCH 08/14] #1724: fixed wrong mainClass definition --- cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index 4e50a5f89..c3f959a98 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -50,7 +50,7 @@ protected void doRun() { "-f", IdeVariables.IDE_ROOT.get(context).toString() + "/_ide/installation/" + POM_PATH + "/pom.xml", "exec:java", - "-Dexec.mainClass=com.devonfw.tools.gui.AppLauncher" + "-Dexec.mainClass=com.devonfw.ide.gui.AppLauncher" ); mvn.runTool(context.newProcess(), ProcessMode.DEFAULT, args); From 87495569d2eaae183a6b8ad963ee087f87fff21f Mon Sep 17 00:00:00 2001 From: laim2003 Date: Fri, 27 Mar 2026 14:46:45 +0100 Subject: [PATCH 09/14] #1724: changelog updated --- CHANGELOG.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 5be38ed93..178468387 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -7,7 +7,8 @@ This file documents all notable changes to https://github.com/devonfw/IDEasy[IDE Release with new features and bugfixes: * https://github.com/devonfw/IDEasy/issues/1702[#1702]: UI Buttons do not scale properly with window resize -* https://github.com/devonfw/IDEasy/issues/1751[#1751]: Add go-lang CLI Commandlet. +* https://github.com/devonfw/IDEasy/issues/1751[#1751]: Add go-lang CLI commandlet. +* https://github.com/devonfw/IDEasy/issues/1724[#1724]: add gui CLI commandlet. * https://github.com/devonfw/IDEasy/issues/1732[#1732]: Add stash support for git-pull * https://github.com/devonfw/IDEasy/issues/1747[#1747]: Fixed macOS x64 native image build using macos-15-intel runner * https://github.com/devonfw/IDEasy/issues/1738[#1738]: FileAccess.delete no longer follows directory links during recursive delete From 87a1c9deea2bd376fdf9e9be14c06bdfdd0d1768 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Fri, 27 Mar 2026 15:47:47 +0100 Subject: [PATCH 10/14] #1724: fixed pom.xml jar configuration in gui module --- .../com/devonfw/tools/ide/tool/gui/Gui.java | 3 --- gui/pom.xml | 25 +++++++------------ 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index c3f959a98..d9097fe3f 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -19,7 +19,6 @@ public class Gui extends Commandlet { private static final Logger LOG = LoggerFactory.getLogger(Gui.class); - //TODO: implement constant in sync with maven property gui.relative_pom_path private static final String POM_PATH = "gui-execution"; /** @@ -31,14 +30,12 @@ public Gui(IdeContext context) { addKeyword("gui"); } - @Override public String getName() { return "gui"; } - @Override protected void doRun() { diff --git a/gui/pom.xml b/gui/pom.xml index 31eb2e6ba..52695dec2 100644 --- a/gui/pom.xml +++ b/gui/pom.xml @@ -65,22 +65,15 @@ org.apache.maven.plugins maven-jar-plugin - - - package - - jar - - - - - com.devonfw.ide.gui.AppLauncher - true - - - - - + + + + com.devonfw.ide.gui.AppLauncher + true + + + + org.openjfx From 81e6128a94033cb5b873f8556d31c59ac8aa50e1 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Fri, 27 Mar 2026 16:12:23 +0100 Subject: [PATCH 11/14] #1724: reverted accidental change --- .../com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java index 329b4054b..dcff28459 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java +++ b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java @@ -27,6 +27,7 @@ import com.devonfw.tools.ide.tool.eclipse.Eclipse; import com.devonfw.tools.ide.tool.gcviewer.GcViewer; import com.devonfw.tools.ide.tool.gh.Gh; +import com.devonfw.tools.ide.tool.go.Go; import com.devonfw.tools.ide.tool.graalvm.GraalVm; import com.devonfw.tools.ide.tool.gradle.Gradle; import com.devonfw.tools.ide.tool.gui.Gui; @@ -146,6 +147,7 @@ public CommandletManagerImpl(IdeContext context) { add(new Yarn(context)); add(new Corepack(context)); add(new Pip(context)); + add(new Go(context)); add(new Gui(context)); } From 8436d4cc202d7fedf6bcbe6c5f339e1257f66e88 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Thu, 2 Apr 2026 17:05:55 +0200 Subject: [PATCH 12/14] #1724: updated gui-launcher/pom.xml --- gui-launcher/pom.xml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/gui-launcher/pom.xml b/gui-launcher/pom.xml index c3d0cd147..865957ad6 100644 --- a/gui-launcher/pom.xml +++ b/gui-launcher/pom.xml @@ -23,22 +23,8 @@ - - 25 - 25 - UTF-8 - - - - org.codehaus.mojo - exec-maven-plugin - 3.1.0 - - com.devonfw.ide.gui.AppLauncher - - maven-resources-plugin 3.3.1 From 9336bb4306337f9ffce6100ca9082a6ec45fd0e6 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Thu, 2 Apr 2026 17:10:00 +0200 Subject: [PATCH 13/14] #1724: updated CHANGELOG.adoc --- CHANGELOG.adoc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 178468387..cb75af502 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -2,13 +2,18 @@ This file documents all notable changes to https://github.com/devonfw/IDEasy[IDEasy]. +== 2026.05.001 + +Release with new features and bugfixes: + +* https://github.com/devonfw/IDEasy/issues/1724[#1724]: add gui CLI commandlet. + == 2026.04.001 Release with new features and bugfixes: * https://github.com/devonfw/IDEasy/issues/1702[#1702]: UI Buttons do not scale properly with window resize * https://github.com/devonfw/IDEasy/issues/1751[#1751]: Add go-lang CLI commandlet. -* https://github.com/devonfw/IDEasy/issues/1724[#1724]: add gui CLI commandlet. * https://github.com/devonfw/IDEasy/issues/1732[#1732]: Add stash support for git-pull * https://github.com/devonfw/IDEasy/issues/1747[#1747]: Fixed macOS x64 native image build using macos-15-intel runner * https://github.com/devonfw/IDEasy/issues/1738[#1738]: FileAccess.delete no longer follows directory links during recursive delete From 96d3fc8f29dc3b7c697865efa4cd27fa58651531 Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 2 Apr 2026 17:16:57 +0200 Subject: [PATCH 14/14] Update cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit small fix in Gui.java Co-authored-by: Jörg Hohwiller --- cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index d9097fe3f..471978d42 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -27,7 +27,7 @@ public class Gui extends Commandlet { public Gui(IdeContext context) { super(context); - addKeyword("gui"); + addKeyword(getName()); } @Override