Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Release with new features and bugfixes:
The full list of changes for this release can be found in https://github.com/devonfw/IDEasy/milestone/47?closed=1[milestone 2026.07.002].

== 2026.07.001
* https://github.com/devonfw/IDEasy/issues/1720[#1720]: Add SoapUI support

Release with new features and bugfixes:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
import com.devonfw.tools.ide.tool.python.Python;
import com.devonfw.tools.ide.tool.quarkus.Quarkus;
import com.devonfw.tools.ide.tool.rust.Rust;
import com.devonfw.tools.ide.tool.soapui.SoapUi;
import com.devonfw.tools.ide.tool.sonar.Sonar;
import com.devonfw.tools.ide.tool.spring.Spring;
import com.devonfw.tools.ide.tool.spyder.Spyder;
Expand Down Expand Up @@ -175,6 +176,7 @@ public CommandletManagerImpl(IdeContext context) {
add(new Claude(context));
add(new Mvnd(context));
add(new Just(context));
add(new SoapUi(context));
}

/**
Expand Down
38 changes: 38 additions & 0 deletions cli/src/main/java/com/devonfw/tools/ide/tool/soapui/SoapUi.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.devonfw.tools.ide.tool.soapui;

import com.devonfw.tools.ide.common.Tag;
import com.devonfw.tools.ide.context.IdeContext;
import com.devonfw.tools.ide.tool.LocalToolCommandlet;

import java.util.Set;

/**
* {@link LocalToolCommandlet} for <a href="https://www.soapui.org/">SoapUI</a>, an open source API testing tool for SOAP and REST services.
*/
public class SoapUi extends LocalToolCommandlet {

private static final String SOAPUI = "soapui";

private static final String SOAPUI_BAT = SOAPUI + ".bat";

private static final String SOAPUI_BASH_SCRIPT = SOAPUI + ".sh";

/**
* The constructor.
*
* @param ideContext {@link IdeContext}.
*/
public SoapUi(IdeContext ideContext) {
super(ideContext, SOAPUI, Set.of(Tag.TEST, Tag.REST));
}

@Override
protected String getBinaryName() {
if (this.context.getSystemInfo().isWindows()) {
return SOAPUI_BAT;
} else {
return SOAPUI_BASH_SCRIPT;
}
}

}
2 changes: 2 additions & 0 deletions cli/src/main/resources/nls/Help.properties
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ cmd.set-version.opt.--cfg=Selection of the configuration file (settings | home |
cmd.set-version.val.version=The tool version to set.
cmd.shell=Commandlet to start built-in shell with advanced auto-completion.
cmd.shell.detail=The interactive shell offers console users a new user experience with an advanced auto-completion. Most inputs can be autocompleted in this mode. IDEasy will offer several matching commands e.g. 'install' or options e.g. '-t' by simply hitting the 'Tab' key after the expression e.g. 'in' for 'install' and 'intellij'. You can use the Tab key to switch between both suggestions. Users familiar with Git Bash will feel right at home, as the Tab feature works the same way.\nThis functionality is powered by JLine3, which provides advanced autocompletion capabilities, including cursor navigation within the suggested options. To exit this mode use 'CTRL+C', 'CTRL+D' or type 'exit'.
cmd.soapui=Tool commandlet for SoapUI.
cmd.soapui.detail=SoapUI is an open source tool for testing SOAP and REST webservices. Detailed documentation can be found at https://www.soapui.org/
cmd.sonar=Tool commandlet for SonarQube.
cmd.sonar.detail=SonarQube is a platform for continuous inspection of code quality. Detailed documentation can be found at https://docs.sonarqube.org/
cmd.sonar.val.command=Action to perform (START|STOP|ANALYZE)
Expand Down
2 changes: 2 additions & 0 deletions cli/src/main/resources/nls/Help_de.properties
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ cmd.set-version.opt.--cfg=Auswahl der Konfigurationsdatei (settings | home | con
cmd.set-version.val.version=Die zu setzende Werkzeug Version.
cmd.shell=Kommando zum Starten der integrierten Shell mit erweiterter Autovervollständigung.
cmd.shell.detail=Die integrierte Shell bietet Konsolenbenutzer*Innen eine neue Benutzererfahrung mit einer erweiterten Autovervollständigung. Die meisten Eingaben können in diesem Modus vervollständigt werden.\nIDEasy liefert zu vielen passende Kommandos wie z.B. 'install' oder Optionen wie z.B. '-t' bei der Betätigung der Tab-Taste, Vorschläge für die Autovervollständigung eines Ausdrucks wie z.B. 'in' für 'install' und 'intellij'. Sie können die Tab-Taste verwenden, um zwischen beiden Vorschlägen zu wechseln. Benutzer, die mit Git Bash vertraut sind, werden sich sofort zurechtfinden, da die Tab-Funktion auf die gleiche Weise funktioniert.\nDiese Funktionalität wird von JLine3 unterstützt, das erweiterte Autovervollständigungsfunktionen bietet, einschließlich der Cursor-Navigation innerhalb der vorgeschlagenen Optionen.\nUm den Modus wieder zu verlassen, drücken Sie einfach 'STRG+C' oder 'STRG+D' oder geben 'exit' in die Konsole ein.
cmd.soapui=Werkzeug Kommando für SoapUI.
cmd.soapui.detail=SoapUI ist ein Open-Source-Werkzeug zum Testen von SOAP- und REST-Webservices. Detaillierte Dokumentation ist zu finden unter https://www.soapui.org/
cmd.sonar=Werkzeug Kommando für SonarQube.
cmd.sonar.detail=SonarQube ist eine Plattform für die kontinuierliche Code-Qualitätsprüfung. Detaillierte Dokumentation ist zu finden unter https://docs.sonarqube.org/
cmd.sonar.val.command=Auszuführende Aktion (START|STOP|ANALYZE)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.devonfw.tools.ide.tool.soapui;

import org.junit.jupiter.api.Test;

import com.devonfw.tools.ide.context.AbstractIdeContextTest;
import com.devonfw.tools.ide.context.IdeTestContext;
import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo;
import com.github.tomakehurst.wiremock.junit5.WireMockTest;

/**
* Test of {@link SoapUi}.
*/
@WireMockTest
public class SoapUiTest extends AbstractIdeContextTest {

private static final String PROJECT_SOAPUI = "soapui";

private static final String SOAPUI_VERSION = "5.10.0";

@Test
void testSoapUiInstall(WireMockRuntimeInfo wireMockRuntimeInfo) {

// arrange
IdeTestContext context = newContext(PROJECT_SOAPUI, wireMockRuntimeInfo);
SoapUi soapUiCommandlet = context.getCommandletManager().getCommandlet(SoapUi.class);

// act
soapUiCommandlet.install();

// assert
assertThat(context.getSoftwarePath().resolve("soapui/.ide.software.version")).exists().hasContent(SOAPUI_VERSION);
assertThat(context).logAtSuccess().hasMessageContaining("Successfully installed soapui in version " + SOAPUI_VERSION);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
${testbaseurl}/download/soapui/soapui/5.10.0/soapui-5.10.0.tgz
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SOAPUI_VERSION=5.10.0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
this is the IDE_ROOT directory
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@echo off
echo soapui %*
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/bash
echo "soapui $*"
1 change: 1 addition & 0 deletions documentation/LICENSE.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ The column `inclusion` indicates the way the component is included:
|https://docs.astral.sh/uv/[uv] |Optional|https://docs.astral.sh/uv/reference/policies/license/[Apache 2.0]
|https://github.com/openjdk/jfx[OpenJFX] |Optional|https://github.com/openjdk/jfx/blob/master/LICENSE[GPLv2] (with the “Classpath” Exception)
|https://squirrel-sql.sourceforge.io/[SQuirreL SQL Client]|Optional|https://github.com/squirrel-sql-client/squirrel-sql-stable-releases/blob/main/LICENSE[LGPL 2.1]
|https://www.soapui.org/[SoapUI]|Optional|https://github.com/SmartBear/soapui/blob/next/LICENSE.txt[EUPL 1.1]
|https://docs.nestjs.com/cli/overview[NestJS CLI] |Optional|https://github.com/nestjs/nest-cli/blob/master/LICENSE[MIT License]
|https://docs.aws.amazon.com/cdk/v2/guide/home.html[AWS CDK CLI] |Optional|https://github.com/aws/aws-cdk-cli/blob/main/LICENSE[Apache 2.0]
|https://www.spyder-ide.org/[Spyder] |Optional|https://github.com/spyder-ide/spyder/blob/master/LICENSE.txt[MIT License]
Expand Down
Loading