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

Reply via email to