From 9a57a745c0b065278d9962749d6567621ae8e3ec Mon Sep 17 00:00:00 2001 From: leonrohne27 Date: Thu, 13 Mar 2025 16:05:51 +0100 Subject: [PATCH 1/3] #913: Added support for SquirrelSQL --- .../ide/commandlet/CommandletManagerImpl.java | 2 + .../ide/tool/squirrelsql/SquirrelSql.java | 30 +++++++++++++ .../tool/squirrelsql/SquirrelUrlUpdater.java | 44 +++++++++++++++++++ .../tools/ide/url/updater/UpdateManager.java | 3 +- cli/src/main/resources/nls/Help.properties | 2 + 5 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelSql.java create mode 100644 cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelUrlUpdater.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 a1ab0b4d96..89e877c231 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 @@ -35,6 +35,7 @@ import com.devonfw.tools.ide.tool.pgadmin.PgAdmin; import com.devonfw.tools.ide.tool.quarkus.Quarkus; import com.devonfw.tools.ide.tool.sonar.Sonar; +import com.devonfw.tools.ide.tool.squirrelsql.SquirrelSql; import com.devonfw.tools.ide.tool.terraform.Terraform; import com.devonfw.tools.ide.tool.tomcat.Tomcat; import com.devonfw.tools.ide.tool.vscode.Vscode; @@ -96,6 +97,7 @@ public CommandletManagerImpl(IdeContext context) { add(new Terraform(context)); add(new Oc(context)); add(new Quarkus(context)); + add(new SquirrelSql(context)); add(new Kotlinc(context)); add(new KotlincNative(context)); add(new KubeCtl(context)); diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelSql.java b/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelSql.java new file mode 100644 index 0000000000..ba8185ab7d --- /dev/null +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelSql.java @@ -0,0 +1,30 @@ +package com.devonfw.tools.ide.tool.squirrelsql; + +import java.util.Set; + +import com.devonfw.tools.ide.common.Tag; +import com.devonfw.tools.ide.context.IdeContext; +import com.devonfw.tools.ide.tool.LocalToolCommandlet; +import com.devonfw.tools.ide.tool.ToolCommandlet; + +/** + * {@link ToolCommandlet} for SQuirreL SQL Client. + */ +public class SquirrelSql extends LocalToolCommandlet { + + /** + * The constructor. + * + * @param context the {@link IdeContext}. + */ + public SquirrelSql(IdeContext context) { + + super(context, "squirrelsql", Set.of(Tag.DB)); + } + + @Override + public String getToolHelpArguments() { + + return "--help"; + } +} diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelUrlUpdater.java b/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelUrlUpdater.java new file mode 100644 index 0000000000..11166c776f --- /dev/null +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelUrlUpdater.java @@ -0,0 +1,44 @@ +package com.devonfw.tools.ide.tool.squirrelsql; + +import com.devonfw.tools.ide.url.model.folder.UrlVersion; +import com.devonfw.tools.ide.url.updater.GithubUrlUpdater; +import com.devonfw.tools.ide.version.VersionIdentifier; + +/** + * {@link GithubUrlUpdater} for SquirrelSQL + */ +public class SquirrelUrlUpdater extends GithubUrlUpdater { + + public static final VersionIdentifier MIN_SQUIRRELSQL_VID = VersionIdentifier.of("4.4.0"); + + @Override + protected String getTool() { + + return "squirrelsql"; + } + + @Override + protected String getGithubOrganization() { + + return "squirrel-sql-client"; + } + + @Override + protected String getGithubRepository() { + + return "squirrel-sql-code"; + } + + @Override + protected void addVersion(UrlVersion urlVersion) { + + VersionIdentifier vid = urlVersion.getVersionIdentifier(); + if (vid.compareVersion(MIN_SQUIRRELSQL_VID).isGreater()) { + String baseUrl = "https://squirrel-sql.sourceforge.io/#installation"; + doAddVersion(urlVersion, baseUrl + ".zip"); + doAddVersion(urlVersion, baseUrl + ".tar.gz"); + } + } + +} + diff --git a/cli/src/main/java/com/devonfw/tools/ide/url/updater/UpdateManager.java b/cli/src/main/java/com/devonfw/tools/ide/url/updater/UpdateManager.java index be8954257b..d60f713fc3 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/url/updater/UpdateManager.java +++ b/cli/src/main/java/com/devonfw/tools/ide/url/updater/UpdateManager.java @@ -42,6 +42,7 @@ import com.devonfw.tools.ide.tool.python.PythonUrlUpdater; import com.devonfw.tools.ide.tool.quarkus.QuarkusUrlUpdater; import com.devonfw.tools.ide.tool.sonar.SonarUrlUpdater; +import com.devonfw.tools.ide.tool.squirrelsql.SquirrelUrlUpdater; import com.devonfw.tools.ide.tool.terraform.TerraformUrlUpdater; import com.devonfw.tools.ide.tool.tomcat.TomcatUrlUpdater; import com.devonfw.tools.ide.tool.vscode.VsCodeUrlUpdater; @@ -69,7 +70,7 @@ public class UpdateManager extends AbstractProcessorWithTimeout { new JavaUrlUpdater(), new JenkinsUrlUpdater(), new JmcUrlUpdater(), new KotlincUrlUpdater(), new KotlincNativeUrlUpdater(), new LazyDockerUrlUpdater(), new MvnUrlUpdater(), new Mvn4UrlUpdater(), new NodeUrlUpdater(), new NpmUrlUpdater(), new OcUrlUpdater(), new PgAdminUrlUpdater(), new PipUrlUpdater(), - new PythonUrlUpdater(), new QuarkusUrlUpdater(), new DockerRancherDesktopUrlUpdater(), new SonarUrlUpdater(), + new PythonUrlUpdater(), new QuarkusUrlUpdater(), new DockerRancherDesktopUrlUpdater(), new SonarUrlUpdater(), new SquirrelUrlUpdater(), new TerraformUrlUpdater(), new TomcatUrlUpdater(), new VsCodeUrlUpdater()); /** diff --git a/cli/src/main/resources/nls/Help.properties b/cli/src/main/resources/nls/Help.properties index a9c0f5c5eb..3d91e0193b 100644 --- a/cli/src/main/resources/nls/Help.properties +++ b/cli/src/main/resources/nls/Help.properties @@ -99,6 +99,8 @@ cmd.sonar.detail=SonarQube is a platform for continuous inspection of code quali cmd.sonar.val.command=Action to perform (START|STOP|ANALYZE) cmd.status=Prints the status report about your IDEasy. cmd.status.detail=To check your IDE-status (e.g. duplicated or legacy variables) as well as potential information about updates to settings you should apply\nwith ide update, run the following command: 'ide status'. +cmd.squirrelsql=Tool commandlet for SquirelSql. +cmd.squirrelsql.detail=SquirrelSQL is a universal SQL client that supports a variety of database management systems. It provides an intuitive interface for running SQL queries, browsing database objects, and managing database connections. Detailed documentation can be found at https://www.squirrelsql.org cmd.terraform=Tool commandlet for Terraform. cmd.terraform.detail=Terraform is an infrastructure as code tool for managing cloud resources. Detailed documentation can be found at https://www.terraform.io/docs/index.html cmd.tomcat=Tool commandlet for Tomcat From e4d08743fe53e38daa23eb5aafe9a028afd1c100 Mon Sep 17 00:00:00 2001 From: leonrohne27 Date: Thu, 13 Mar 2025 16:10:03 +0100 Subject: [PATCH 2/3] #913 --- .../{SquirrelUrlUpdater.java => SquirrelSqlUrlUpdater.java} | 2 +- .../java/com/devonfw/tools/ide/url/updater/UpdateManager.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/{SquirrelUrlUpdater.java => SquirrelSqlUrlUpdater.java} (94%) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelUrlUpdater.java b/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelSqlUrlUpdater.java similarity index 94% rename from cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelUrlUpdater.java rename to cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelSqlUrlUpdater.java index 11166c776f..5fd6f970fc 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelUrlUpdater.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/squirrelsql/SquirrelSqlUrlUpdater.java @@ -7,7 +7,7 @@ /** * {@link GithubUrlUpdater} for SquirrelSQL */ -public class SquirrelUrlUpdater extends GithubUrlUpdater { +public class SquirrelSqlUrlUpdater extends GithubUrlUpdater { public static final VersionIdentifier MIN_SQUIRRELSQL_VID = VersionIdentifier.of("4.4.0"); diff --git a/cli/src/main/java/com/devonfw/tools/ide/url/updater/UpdateManager.java b/cli/src/main/java/com/devonfw/tools/ide/url/updater/UpdateManager.java index d60f713fc3..5b7adc06dd 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/url/updater/UpdateManager.java +++ b/cli/src/main/java/com/devonfw/tools/ide/url/updater/UpdateManager.java @@ -42,7 +42,7 @@ import com.devonfw.tools.ide.tool.python.PythonUrlUpdater; import com.devonfw.tools.ide.tool.quarkus.QuarkusUrlUpdater; import com.devonfw.tools.ide.tool.sonar.SonarUrlUpdater; -import com.devonfw.tools.ide.tool.squirrelsql.SquirrelUrlUpdater; +import com.devonfw.tools.ide.tool.squirrelsql.SquirrelSqlUrlUpdater; import com.devonfw.tools.ide.tool.terraform.TerraformUrlUpdater; import com.devonfw.tools.ide.tool.tomcat.TomcatUrlUpdater; import com.devonfw.tools.ide.tool.vscode.VsCodeUrlUpdater; @@ -70,7 +70,7 @@ public class UpdateManager extends AbstractProcessorWithTimeout { new JavaUrlUpdater(), new JenkinsUrlUpdater(), new JmcUrlUpdater(), new KotlincUrlUpdater(), new KotlincNativeUrlUpdater(), new LazyDockerUrlUpdater(), new MvnUrlUpdater(), new Mvn4UrlUpdater(), new NodeUrlUpdater(), new NpmUrlUpdater(), new OcUrlUpdater(), new PgAdminUrlUpdater(), new PipUrlUpdater(), - new PythonUrlUpdater(), new QuarkusUrlUpdater(), new DockerRancherDesktopUrlUpdater(), new SonarUrlUpdater(), new SquirrelUrlUpdater(), + new PythonUrlUpdater(), new QuarkusUrlUpdater(), new DockerRancherDesktopUrlUpdater(), new SonarUrlUpdater(), new SquirrelSqlUrlUpdater(), new TerraformUrlUpdater(), new TomcatUrlUpdater(), new VsCodeUrlUpdater()); /** From e890ede0cbdf383f7d319c40c1e6e5117e046fb2 Mon Sep 17 00:00:00 2001 From: leonrohne27 Date: Fri, 14 Mar 2025 07:43:11 +0100 Subject: [PATCH 3/3] #913 --- cli/src/main/resources/nls/Help.properties | 2 +- cli/src/main/resources/nls/Help_de.properties | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cli/src/main/resources/nls/Help.properties b/cli/src/main/resources/nls/Help.properties index 55d4393852..cfac2df7b6 100644 --- a/cli/src/main/resources/nls/Help.properties +++ b/cli/src/main/resources/nls/Help.properties @@ -99,7 +99,7 @@ cmd.sonar.detail=SonarQube is a platform for continuous inspection of code quali cmd.sonar.val.command=Action to perform (START|STOP|ANALYZE) cmd.status=Prints the status report about your IDEasy. cmd.status.detail=To check your IDE-status (e.g. duplicated or legacy variables) as well as potential information about updates to settings you should apply\nwith ide update, run the following command: 'ide status'. -cmd.squirrelsql=Tool commandlet for SquirelSql. +cmd.squirrelsql=Tool commandlet for SquirrelSql. cmd.squirrelsql.detail=SquirrelSQL is a universal SQL client that supports a variety of database management systems. It provides an intuitive interface for running SQL queries, browsing database objects, and managing database connections. Detailed documentation can be found at https://www.squirrelsql.org cmd.terraform=Tool commandlet for Terraform. cmd.terraform.detail=Terraform is an infrastructure as code tool for managing cloud resources. Detailed documentation can be found at https://www.terraform.io/docs/index.html diff --git a/cli/src/main/resources/nls/Help_de.properties b/cli/src/main/resources/nls/Help_de.properties index 0f2c109045..27917490ea 100644 --- a/cli/src/main/resources/nls/Help_de.properties +++ b/cli/src/main/resources/nls/Help_de.properties @@ -99,6 +99,8 @@ cmd.sonar.detail=SonarQube ist eine Plattform für die kontinuierliche Code-Qual cmd.sonar.val.command=Auszuführende Aktion (START|STOP|ANALYZE) cmd.status=Gibt einen Statusbericht über IDEasy aus cmd.status.detail=Um den Status Ihrer IDE zu überprüfen (z.B. doppelte oder veraltete Variablen) sowie potenzielle Informationen über Updates zu den Einstellungen,\ndie Sie mit dem Befehl 'ide update' anwenden sollten, führen Sie den folgenden Befehl aus: 'ide status'. +cmd.squirrelsql=Werkzeug Kommando für SquirrelSQL. +cmd.squirrelsql.detail=SquirrelSQL ist ein universeller SQL-Client, der eine Vielzahl von Datenbankverwaltungssystemen unterstützt. Er bietet eine intuitive Benutzeroberfläche zum Ausführen von SQL-Abfragen, Durchsuchen von Datenbankobjekten und Verwalten von Datenbankverbindungen. Eine ausführliche Dokumentation finden Sie unter https://www.squirrelsql.org cmd.terraform=Werkzeug Kommando für Terraform. cmd.terraform.detail=Terraform ist ein Tool für Infrastructure as Code zur Verwaltung von Cloud-Ressourcen. Detaillierte Dokumentation ist zu finden unter https://www.terraform.io/docs/index.html cmd.tomcat=Werkzeug Kommando für Tomcat