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 <crazy...@apache.org> 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 <crazy...@apache.org> --- 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