This is an automated email from the ASF dual-hosted git repository.
cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/master by this push:
new 7546361a0d [MNG-8475] In the loop scenario, StringBuilder is used
instead of concatenation (#2014)
7546361a0d is described below
commit 7546361a0d71193ad41886f7e4c6542fc2ef1d23
Author: Jermaine Hua <[email protected]>
AuthorDate: Thu Jan 9 01:20:28 2025 +0800
[MNG-8475] In the loop scenario, StringBuilder is used instead of
concatenation (#2014)
Signed-off-by: crazyhzm <[email protected]>
---
https://issues.apache.org/jira/browse/MNG-8475
---
.../maven/project/AbstractMavenProjectTestCase.java | 6 +++---
.../internal/DefaultArtifactDescriptorReader.java | 12 ++++++------
.../aether/ReverseTreeRepositoryListener.java | 18 +++++++++---------
.../lifecycle/internal/MojoDescriptorCreator.java | 21 +++++++++------------
4 files changed, 27 insertions(+), 30 deletions(-)
diff --git
a/compat/maven-compat/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
b/compat/maven-compat/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
index fffdbb85c6..4893eb69d9 100644
---
a/compat/maven-compat/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
+++
b/compat/maven-compat/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
@@ -135,12 +135,12 @@ public abstract class AbstractMavenProjectTestCase {
} catch (Exception e) {
Throwable cause = e.getCause();
if (cause instanceof ModelBuildingException) {
- String message = "In: " + pom + "\n\n";
+ StringBuilder message = new StringBuilder("In: " + pom +
"\n\n");
for (ModelProblem problem : ((ModelBuildingException)
cause).getProblems()) {
- message += problem + "\n";
+ message.append(problem).append("\n");
}
System.out.println(message);
- fail(message);
+ fail(message.toString());
}
throw e;
diff --git
a/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
b/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
index bbc55d4d26..2ba1695fe0 100644
---
a/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
+++
b/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
@@ -240,19 +240,19 @@ public class DefaultArtifactDescriptorReader implements
ArtifactDescriptorReader
if (logger.isDebugEnabled()) {
String problem = (problems.size() == 1) ? "problem" :
"problems";
String problemPredicate = problem + ((problems.size()
== 1) ? " was" : " were");
- String message = String.format(
+ StringBuilder message = new
StringBuilder(String.format(
"%s %s encountered while building the
effective model for %s during %s\n",
problems.size(),
problemPredicate,
request.getArtifact(),
- RequestTraceHelper.interpretTrace(true,
request.getTrace()));
- message += StringUtils.capitalizeFirstLetter(problem);
+ RequestTraceHelper.interpretTrace(true,
request.getTrace())));
+
message.append(StringUtils.capitalizeFirstLetter(problem));
for (ModelProblem modelProblem : problems) {
- message += String.format(
+ message.append(String.format(
"\n* %s @ %s",
- modelProblem.getMessage(),
ModelProblemUtils.formatLocation(modelProblem, null));
+ modelProblem.getMessage(),
ModelProblemUtils.formatLocation(modelProblem, null)));
}
- logger.warn(message);
+ logger.warn(message.toString());
} else {
logger.warn(
"{} {} encountered while building the
effective model for {} during {} (use -X to see details)",
diff --git
a/impl/maven-core/src/main/java/org/apache/maven/internal/aether/ReverseTreeRepositoryListener.java
b/impl/maven-core/src/main/java/org/apache/maven/internal/aether/ReverseTreeRepositoryListener.java
index 14f7378703..4bb367ade8 100644
---
a/impl/maven-core/src/main/java/org/apache/maven/internal/aether/ReverseTreeRepositoryListener.java
+++
b/impl/maven-core/src/main/java/org/apache/maven/internal/aether/ReverseTreeRepositoryListener.java
@@ -98,7 +98,7 @@ class ReverseTreeRepositoryListener extends
AbstractRepositoryListener {
String ext = missing ? ".miss" : ".dep";
Path trackingFile = null;
- String indent = "";
+ StringBuilder indent = new StringBuilder();
ArrayList<String> trackingData = new ArrayList<>();
if (collectStepTrace == null && plugin != null) {
@@ -110,16 +110,16 @@ class ReverseTreeRepositoryListener extends
AbstractRepositoryListener {
}
if (event.getArtifact() != null) {
- trackingData.add(indent + event.getArtifact());
- indent += " ";
+ trackingData.add(indent.toString() + event.getArtifact());
+ indent.append(" ");
}
trackingData.add(indent + plugin.getGroupId() + ":" +
plugin.getArtifactId() + ":" + plugin.getVersion());
- indent += " ";
+ indent.append(" ");
InputLocation location = plugin.getLocation("");
if (location != null && location.getSource() != null) {
trackingData.add(indent + location.getSource().getModelId() +
" (implicit)");
- indent += " ";
+ indent.append(" ");
}
} else if (collectStepTrace != null) {
if (collectStepTrace.getPath().get(0).getArtifact() == null) {
@@ -138,15 +138,15 @@ class ReverseTreeRepositoryListener extends
AbstractRepositoryListener {
if (isInScope(resolvedArtifact, nodeArtifact) ||
"pom".equals(resolvedArtifact.getExtension())) {
Dependency node = collectStepTrace.getNode();
trackingData.add(resolvedArtifact.toString());
- indent += " ";
- trackingData.add(indent + node + " (" +
collectStepTrace.getContext() + ")");
+ indent.append(" ");
+ trackingData.add(indent.toString() + node + " (" +
collectStepTrace.getContext() + ")");
ListIterator<DependencyNode> iter = collectStepTrace
.getPath()
.listIterator(collectStepTrace.getPath().size());
while (iter.hasPrevious()) {
DependencyNode curr = iter.previous();
- indent += " ";
- trackingData.add(indent + curr + " (" +
collectStepTrace.getContext() + ")");
+ indent.append(" ");
+ trackingData.add(indent.toString() + curr + " (" +
collectStepTrace.getContext() + ")");
}
}
}
diff --git
a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
index b380123955..15271e4cb9 100644
---
a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
+++
b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
@@ -138,9 +138,9 @@ public class MojoDescriptorCreator {
throws PluginNotFoundException, PluginResolutionException,
PluginDescriptorParsingException,
MojoNotFoundException, NoPluginFoundForPrefixException,
InvalidPluginDescriptorException,
PluginVersionResolutionException {
- String goal = null;
+ StringBuilder goal = new StringBuilder();
- Plugin plugin = null;
+ Plugin plugin;
String[] tok = task.split(":");
@@ -160,11 +160,11 @@ public class MojoDescriptorCreator {
plugin.setGroupId(tok[0]);
plugin.setArtifactId(tok[1]);
plugin.setVersion(tok[2]);
- goal = tok[3];
+ goal.append(tok[3]);
// This won't be valid, but it constructs something easy to read
in the error message
for (int idx = 4; idx < tok.length; idx++) {
- goal += ":" + tok[idx];
+ goal.append(":").append(tok[idx]);
}
} else if (numTokens == 3) {
// groupId:artifactId:goal or pluginPrefix:version:goal (since
Maven 3.9.0)
@@ -189,7 +189,7 @@ public class MojoDescriptorCreator {
plugin = findPluginForPrefix(firstToken, session);
plugin.setVersion(tok[1]);
}
- goal = tok[2];
+ goal.append(tok[2]);
} else {
// We have a prefix and goal
//
@@ -198,10 +198,7 @@ public class MojoDescriptorCreator {
String prefix = tok[0];
if (numTokens == 2) {
- goal = tok[1];
- } else {
- // goal was missing - pass through to MojoNotFoundException
- goal = "";
+ goal.append(tok[1]);
}
// This is the case where someone has executed a single goal from
the command line
@@ -216,9 +213,9 @@ public class MojoDescriptorCreator {
plugin = findPluginForPrefix(prefix, session);
}
- int executionIdx = goal.indexOf('@');
+ int executionIdx = goal.indexOf("@");
if (executionIdx > 0) {
- goal = goal.substring(0, executionIdx);
+ goal.setLength(executionIdx);
}
injectPluginDeclarationFromProject(plugin, project);
@@ -231,7 +228,7 @@ public class MojoDescriptorCreator {
}
return pluginManager.getMojoDescriptor(
- plugin, goal, project.getRemotePluginRepositories(),
session.getRepositorySession());
+ plugin, goal.toString(),
project.getRemotePluginRepositories(), session.getRepositorySession());
}
// TODO take repo mans into account as one may be aggregating prefixes of
many