Skip to content

Commit 617220e

Browse files
committed
#1213: changed the tool installation log and added new method to get latest tool version
1 parent 26670c9 commit 617220e

File tree

2 files changed

+24
-14
lines changed

2 files changed

+24
-14
lines changed

cli/src/main/java/com/devonfw/tools/ide/tool/LocalToolCommandlet.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,10 @@ protected Path downloadTool(String edition, ToolRepository toolRepository, Versi
242242
*
243243
* @param version the required {@link VersionRange}. See {@link ToolDependency#versionRange()}.
244244
* @param processContext the {@link ProcessContext}.
245+
* @param toolParent the parent tool name needing the dependency
245246
* @return {@code true} if the tool was newly installed, {@code false} otherwise (installation was already present).
246247
*/
247-
public boolean installAsDependency(VersionRange version, ProcessContext processContext) {
248+
public boolean installAsDependency(VersionRange version, ProcessContext processContext, String toolParent) {
248249

249250
VersionIdentifier configuredVersion = getConfiguredVersion();
250251
if (version.contains(configuredVersion)) {
@@ -257,8 +258,9 @@ public boolean installAsDependency(VersionRange version, ProcessContext processC
257258
+ " and this tool does not support the software repository.");
258259
}
259260
this.context.info(
260-
"Configured version of tool {} is {} but does not match version to install {} - need to use different version from software repository.",
261-
this.tool, configuredVersion, version);
261+
"The tool {} requires {} in the version range {}, but your project uses version {}, which does not match."
262+
+ " Therefore, we install an additional version {} to run it.",
263+
toolParent, this.tool, version, configuredVersion, getLatestToolVersion());
262264
}
263265
ToolInstallation toolInstallation = installTool(version, processContext);
264266
return toolInstallation.newInstallation();
@@ -272,7 +274,7 @@ private void installToolDependencies(VersionIdentifier version, String edition,
272274
for (ToolDependency dependency : dependencies) {
273275
this.context.trace("Ensuring dependency {} for tool {}", dependency.tool(), toolWithEdition);
274276
LocalToolCommandlet dependencyTool = this.context.getCommandletManager().getRequiredLocalToolCommandlet(dependency.tool());
275-
dependencyTool.installAsDependency(dependency.versionRange(), processContext);
277+
dependencyTool.installAsDependency(dependency.versionRange(), processContext, toolWithEdition);
276278
}
277279
}
278280

@@ -424,5 +426,13 @@ public void setEnvironment(EnvironmentContext environmentContext, ToolInstallati
424426
}
425427
}
426428

429+
/**
430+
* @return {@link VersionIdentifier} with latest version of the tool}.
431+
*/
432+
public VersionIdentifier getLatestToolVersion() {
433+
434+
return this.context.getDefaultToolRepository().resolveVersion(this.tool, getConfiguredEdition(), VersionIdentifier.LATEST, this);
435+
}
436+
427437

428438
}

cli/src/test/java/com/devonfw/tools/ide/tool/tomcat/TomcatTest.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,18 @@ public void testTomcat() {
4848
assertThat(context.getSoftwarePath().resolve("tomcat/.ide.software.version")).exists().hasContent(tomcatVersion);
4949
assertThat(javaTomcatPath.resolve(".ide.software.version")).exists().hasContent(javaVersionTomcat);
5050
assertThat(context).log().hasEntries(
51-
new IdeLogEntry(IdeLogLevel.SUCCESS, "Successfully installed java in version " + javaVersionProject), //
52-
new IdeLogEntry(IdeLogLevel.INFO, "OpenJDK version " + javaVersionProject), //
51+
new IdeLogEntry(IdeLogLevel.SUCCESS, "Successfully installed java in version " + javaVersionProject),
52+
new IdeLogEntry(IdeLogLevel.INFO, "OpenJDK version " + javaVersionProject),
5353
new IdeLogEntry(IdeLogLevel.INFO,
54-
"Configured version of tool java is 8u402b06 but does not match version to install [11,22) - need to use different version from software repository."),
55-
//
54+
"The tool tomcat requires java in the version range [11,22), but your project uses version 8u402b06, which does not match."
55+
+ " Therefore, we install an additional version 21_35 to run it."),
5656
new IdeLogEntry(IdeLogLevel.DEBUG, "Installed java in version " + javaVersionTomcat + " at ", true),
57-
new IdeLogEntry(IdeLogLevel.SUCCESS, "Successfully installed tomcat in version " + tomcatVersion), //
58-
new IdeLogEntry(IdeLogLevel.INFO, "OpenJDK version " + javaVersionTomcat), //
59-
new IdeLogEntry(IdeLogLevel.INFO, "JAVA_HOME=" + javaTomcatPath), //
60-
new IdeLogEntry(IdeLogLevel.INFO, "tomcat run"), //
61-
new IdeLogEntry(IdeLogLevel.INFO, "Tomcat is running at localhost on HTTP port " + tomcatPort + ":"), //
62-
new IdeLogEntry(IdeLogLevel.INFO, "http://localhost:" + tomcatPort) //
57+
new IdeLogEntry(IdeLogLevel.SUCCESS, "Successfully installed tomcat in version " + tomcatVersion),
58+
new IdeLogEntry(IdeLogLevel.INFO, "OpenJDK version " + javaVersionTomcat),
59+
new IdeLogEntry(IdeLogLevel.INFO, "JAVA_HOME=" + javaTomcatPath),
60+
new IdeLogEntry(IdeLogLevel.INFO, "tomcat run"),
61+
new IdeLogEntry(IdeLogLevel.INFO, "Tomcat is running at localhost on HTTP port " + tomcatPort + ":"),
62+
new IdeLogEntry(IdeLogLevel.INFO, "http://localhost:" + tomcatPort)
6363
);
6464
}
6565

0 commit comments

Comments
 (0)