You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/04/10 16:38:56 UTC
[camel] branch main updated: Optimization of loops with the only action of appending a string several times (#9828)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 7f0e0f52088 Optimization of loops with the only action of appending a string several times (#9828)
7f0e0f52088 is described below
commit 7f0e0f52088b993a84da6786e0ac868752bd0ded
Author: dk2k <dk...@users.noreply.github.com>
AuthorDate: Mon Apr 10 19:38:40 2023 +0300
Optimization of loops with the only action of appending a string several times (#9828)
* Optimization of loops with the only action of appending a string several times. For this case String.repeat() method was introduced in java 11
* Removed Math.max() calls inside String.repeat(). Removed a couple of unneeded StringBuilders
* Removed Math.max() calls inside String.repeat(). Removed a couple of unneeded StringBuilders
---------
Co-authored-by: dk2k <dk...@ya.ru>
---
.../org/apache/camel/maven/RouteCoverageMojo.java | 6 +--
.../camel/parser/model/CamelNodeDetails.java | 6 +--
.../dataformat/bindy/BindyFixedLengthFactory.java | 6 +--
.../jdbc/ClusteredJdbcAggregationRepository.java | 4 +-
.../ClusteredPostgresAggregationRepository.java | 4 +-
.../aggregate/jdbc/JdbcAggregationRepository.java | 4 +-
.../jdbc/PostgresAggregationRepository.java | 4 +-
.../debugger/DefaultBacklogTracerEventMessage.java | 4 +-
.../simple/types/SimpleIllegalSyntaxException.java | 9 ++--
.../org/apache/camel/support/MessageHelper.java | 8 +---
.../main/java/org/apache/camel/util/FileUtil.java | 4 +-
.../java/org/apache/camel/util/json/Jsoner.java | 50 ++++++----------------
12 files changed, 28 insertions(+), 81 deletions(-)
diff --git a/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java b/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
index 80556a7b8c9..ab3fdec5df8 100644
--- a/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
+++ b/catalog/camel-report-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
@@ -502,11 +502,7 @@ public class RouteCoverageMojo extends AbstractExecMojo {
}
private static String padString(int level) {
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < level; i++) {
- sb.append(" ");
- }
- return sb.toString();
+ return " ".repeat(level);
}
private boolean matchFile(File file) {
diff --git a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/model/CamelNodeDetails.java b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/model/CamelNodeDetails.java
index 2f5d8faad96..16d786e0c9a 100644
--- a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/model/CamelNodeDetails.java
+++ b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/model/CamelNodeDetails.java
@@ -170,10 +170,6 @@ public class CamelNodeDetails {
}
private static String padString(int level) {
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < level; i++) {
- sb.append(" ");
- }
- return sb.toString();
+ return " ".repeat(level);
}
}
diff --git a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java
index 0bf10bd76c3..9bc2b8b505d 100644
--- a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java
+++ b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java
@@ -553,13 +553,9 @@ public class BindyFixedLengthFactory extends BindyAbstractFactory implements Bin
}
private String generatePaddingChars(char pad, int lengthField, int lengthString) {
- StringBuilder buffer = new StringBuilder();
int size = lengthField - lengthString;
- for (int i = 0; i < size; i++) {
- buffer.append(Character.toString(pad));
- }
- return buffer.toString();
+ return Character.toString(pad).repeat(size);
}
/**
diff --git a/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/ClusteredJdbcAggregationRepository.java b/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/ClusteredJdbcAggregationRepository.java
index 9a82899c60d..0c87afc0de3 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/ClusteredJdbcAggregationRepository.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/ClusteredJdbcAggregationRepository.java
@@ -124,9 +124,7 @@ public class ClusteredJdbcAggregationRepository extends JdbcAggregationRepositor
}
queryBuilder.append(") VALUES (");
- for (int i = 0; i < totalParameterIndex - 1; i++) {
- queryBuilder.append("?, ");
- }
+ queryBuilder.append("?, ".repeat(totalParameterIndex - 1));
queryBuilder.append("?)");
String sql = queryBuilder.toString();
diff --git a/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/ClusteredPostgresAggregationRepository.java b/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/ClusteredPostgresAggregationRepository.java
index 017fa0d6a2c..fdb0b75215a 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/ClusteredPostgresAggregationRepository.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/ClusteredPostgresAggregationRepository.java
@@ -78,9 +78,7 @@ public class ClusteredPostgresAggregationRepository extends ClusteredJdbcAggrega
queryBuilder.append(") VALUES (");
- for (int i = 0; i < totalParameterIndex - 1; i++) {
- queryBuilder.append("?, ");
- }
+ queryBuilder.append("?, ".repeat(Math.max(0, totalParameterIndex - 1)));
queryBuilder.append("?)");
queryBuilder.append(" ON CONFLICT DO NOTHING");
diff --git a/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/JdbcAggregationRepository.java b/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/JdbcAggregationRepository.java
index 2bbbef4143b..00aac3c59a2 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/JdbcAggregationRepository.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/JdbcAggregationRepository.java
@@ -264,9 +264,7 @@ public class JdbcAggregationRepository extends ServiceSupport
queryBuilder.append(") VALUES (");
- for (int i = 0; i < totalParameterIndex - 1; i++) {
- queryBuilder.append("?, ");
- }
+ queryBuilder.append("?, ".repeat(totalParameterIndex - 1));
queryBuilder.append("?)");
String sql = queryBuilder.toString();
diff --git a/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/PostgresAggregationRepository.java b/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/PostgresAggregationRepository.java
index 4f1da5bba88..585011782f2 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/PostgresAggregationRepository.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/PostgresAggregationRepository.java
@@ -78,9 +78,7 @@ public class PostgresAggregationRepository extends JdbcAggregationRepository {
queryBuilder.append(") VALUES (");
- for (int i = 0; i < totalParameterIndex - 1; i++) {
- queryBuilder.append("?, ");
- }
+ queryBuilder.append("?, ".repeat(totalParameterIndex - 1));
queryBuilder.append("?)");
queryBuilder.append(" ON CONFLICT DO NOTHING");
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/DefaultBacklogTracerEventMessage.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/DefaultBacklogTracerEventMessage.java
index 168a4f2eaca..98bf1595c5b 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/DefaultBacklogTracerEventMessage.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/DefaultBacklogTracerEventMessage.java
@@ -183,9 +183,7 @@ public final class DefaultBacklogTracerEventMessage implements BacklogTracerEven
@Override
public String toXml(int indent) {
StringBuilder prefix = new StringBuilder();
- for (int i = 0; i < indent; i++) {
- prefix.append(" ");
- }
+ prefix.append(" ".repeat(indent));
StringBuilder sb = new StringBuilder();
sb.append(prefix).append("<").append(ROOT_TAG).append(">\n");
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/types/SimpleIllegalSyntaxException.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/types/SimpleIllegalSyntaxException.java
index 4215eb088a1..2beec16111f 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/types/SimpleIllegalSyntaxException.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/types/SimpleIllegalSyntaxException.java
@@ -23,6 +23,7 @@ import org.apache.camel.ExpressionIllegalSyntaxException;
*/
public class SimpleIllegalSyntaxException extends ExpressionIllegalSyntaxException {
private static final long serialVersionUID = 1L;
+ private static final String FORMATTED_NULL = "[null]";
private final int index;
private final String message;
@@ -53,7 +54,7 @@ public class SimpleIllegalSyntaxException extends ExpressionIllegalSyntaxExcepti
*/
public String getShortMessage() {
if (message == null) {
- return "[null]";
+ return FORMATTED_NULL;
}
return message;
}
@@ -61,7 +62,7 @@ public class SimpleIllegalSyntaxException extends ExpressionIllegalSyntaxExcepti
@Override
public String getMessage() {
if (message == null) {
- return "[null]";
+ return FORMATTED_NULL;
}
StringBuilder sb = new StringBuilder(message);
@@ -69,9 +70,7 @@ public class SimpleIllegalSyntaxException extends ExpressionIllegalSyntaxExcepti
sb.append(" at location ").append(index);
// create a nice looking message with indicator where the problem is
sb.append("\n").append(getExpression()).append("\n");
- for (int i = 0; i < index; i++) {
- sb.append(" ");
- }
+ sb.append(" ".repeat(index));
sb.append("*\n");
}
return sb.toString();
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java
index c0617cf16d1..cbc6289d849 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java
@@ -495,9 +495,7 @@ public final class MessageHelper {
StringBuilder sb = new StringBuilder();
StringBuilder prefix = new StringBuilder();
- for (int i = 0; i < indent; i++) {
- prefix.append(" ");
- }
+ prefix.append(" ".repeat(indent));
// include exchangeId/exchangePattern/type as attribute on the <message> tag
sb.append(prefix);
@@ -1002,9 +1000,7 @@ public final class MessageHelper {
*/
public static String dumpExceptionAsXML(Throwable exception, int indent) {
StringBuilder prefix = new StringBuilder();
- for (int i = 0; i < indent; i++) {
- prefix.append(" ");
- }
+ prefix.append(" ".repeat(indent));
StringBuilder sb = new StringBuilder();
try {
diff --git a/core/camel-util/src/main/java/org/apache/camel/util/FileUtil.java b/core/camel-util/src/main/java/org/apache/camel/util/FileUtil.java
index 22a6db39253..356027a66de 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/FileUtil.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/FileUtil.java
@@ -345,9 +345,7 @@ public final class FileUtil {
sb.append(":");
}
- for (int i = 0; i < cntSlashsAtStart; i++) {
- sb.append(separator);
- }
+ sb.append(String.valueOf(separator).repeat(cntSlashsAtStart));
// now we build back using FIFO so need to use descending
for (Iterator<String> it = stack.descendingIterator(); it.hasNext();) {
diff --git a/tooling/camel-util-json/src/main/java/org/apache/camel/util/json/Jsoner.java b/tooling/camel-util-json/src/main/java/org/apache/camel/util/json/Jsoner.java
index d8533163ae8..d690ecd3447 100644
--- a/tooling/camel-util-json/src/main/java/org/apache/camel/util/json/Jsoner.java
+++ b/tooling/camel-util-json/src/main/java/org/apache/camel/util/json/Jsoner.java
@@ -513,9 +513,7 @@ public final class Jsoner {
|| character >= '\u2000' && character <= '\u20FF') {
final String characterHexCode = Integer.toHexString(character);
builder.append("\\u");
- for (int k = 0; k < (4 - characterHexCode.length()); k++) {
- builder.append("0");
- }
+ builder.append("0".repeat((4 - characterHexCode.length())));
builder.append(characterHexCode.toUpperCase());
} else {
/* Character didn't need escaping. */
@@ -647,11 +645,8 @@ public final class Jsoner {
if (spaces > 10 || spaces < 2) {
throw new IllegalArgumentException("Indentation with spaces must be between 2 and 10.");
}
- final StringBuilder indentation = new StringBuilder("");
- for (int i = 0; i < spaces; i++) {
- indentation.append(" ");
- }
- return Jsoner.prettyPrint(printable, indentation.toString(), depth);
+
+ return Jsoner.prettyPrint(printable, " ".repeat(spaces), depth);
}
/**
@@ -683,9 +678,7 @@ public final class Jsoner {
returnable.append(lexed.getValue());
if (level <= depth) {
returnable.append("\n");
- for (int i = 0; i < level; i++) {
- returnable.append(indentation);
- }
+ returnable.append(String.valueOf(indentation).repeat(level));
} else {
returnable.append(" ");
}
@@ -698,9 +691,7 @@ public final class Jsoner {
returnable.append(lexed.getValue());
if (++level <= depth) {
returnable.append("\n");
- for (int i = 0; i < level; i++) {
- returnable.append(indentation);
- }
+ returnable.append(String.valueOf(indentation).repeat(level));
} else {
returnable.append(" ");
}
@@ -709,9 +700,7 @@ public final class Jsoner {
case RIGHT_SQUARE:
if (level-- <= depth) {
returnable.append("\n");
- for (int i = 0; i < level; i++) {
- returnable.append(indentation);
- }
+ returnable.append(String.valueOf(indentation).repeat(level));
} else {
returnable.append(" ");
}
@@ -756,11 +745,8 @@ public final class Jsoner {
if (spaces > 10 || spaces < 2) {
throw new IllegalArgumentException("Indentation with spaces must be between 2 and 10.");
}
- final StringBuilder indentation = new StringBuilder("");
- for (int i = 0; i < spaces; i++) {
- indentation.append(" ");
- }
- return Jsoner.colorPrint(printable, indentation.toString(), Integer.MAX_VALUE, pretty, color);
+
+ return Jsoner.colorPrint(printable, " ".repeat(spaces), Integer.MAX_VALUE, pretty, color);
}
public static String colorPrint(
@@ -784,9 +770,7 @@ public final class Jsoner {
if (level <= depth) {
if (pretty) {
returnable.append("\n");
- for (int i = 0; i < level; i++) {
- returnable.append(indentation);
- }
+ returnable.append(String.valueOf(indentation).repeat(level));
}
} else {
if (pretty) {
@@ -804,9 +788,7 @@ public final class Jsoner {
if (++level <= depth) {
if (pretty) {
returnable.append("\n");
- for (int i = 0; i < level; i++) {
- returnable.append(indentation);
- }
+ returnable.append(String.valueOf(indentation).repeat(level));
}
} else {
if (pretty) {
@@ -819,9 +801,7 @@ public final class Jsoner {
if (++level <= depth) {
if (pretty) {
returnable.append("\n");
- for (int i = 0; i < level; i++) {
- returnable.append(indentation);
- }
+ returnable.append(String.valueOf(indentation).repeat(level));
}
} else {
if (pretty) {
@@ -833,9 +813,7 @@ public final class Jsoner {
if (level-- <= depth) {
if (pretty) {
returnable.append("\n");
- for (int i = 0; i < level; i++) {
- returnable.append(indentation);
- }
+ returnable.append(String.valueOf(indentation).repeat(level));
}
} else {
if (pretty) {
@@ -848,9 +826,7 @@ public final class Jsoner {
if (level-- <= depth) {
if (pretty) {
returnable.append("\n");
- for (int i = 0; i < level; i++) {
- returnable.append(indentation);
- }
+ returnable.append(String.valueOf(indentation).repeat(level));
}
} else {
if (pretty) {