diff --git a/clients/src/main/java/org/apache/kafka/common/config/provider/DirectoryConfigProvider.java b/clients/src/main/java/org/apache/kafka/common/config/provider/DirectoryConfigProvider.java index 86f991bf7a6..3e0fa5ed772 100644 --- a/clients/src/main/java/org/apache/kafka/common/config/provider/DirectoryConfigProvider.java +++ b/clients/src/main/java/org/apache/kafka/common/config/provider/DirectoryConfigProvider.java @@ -24,7 +24,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.Map; @@ -117,7 +116,7 @@ public class DirectoryConfigProvider implements ConfigProvider { private static String read(Path path) { try { - return new String(Files.readAllBytes(path), StandardCharsets.UTF_8); + return Files.readString(path); } catch (IOException e) { log.error("Could not read file {} for property {}", path, path.getFileName(), e); throw new ConfigException("Could not read file " + path + " for property " + path.getFileName()); diff --git a/clients/src/test/java/org/apache/kafka/clients/consumer/internals/AbstractStickyAssignorTest.java b/clients/src/test/java/org/apache/kafka/clients/consumer/internals/AbstractStickyAssignorTest.java index 31334b7b19c..ee6df4e65a2 100644 --- a/clients/src/test/java/org/apache/kafka/clients/consumer/internals/AbstractStickyAssignorTest.java +++ b/clients/src/test/java/org/apache/kafka/clients/consumer/internals/AbstractStickyAssignorTest.java @@ -1426,14 +1426,8 @@ public abstract class AbstractStickyAssignorTest { } private String pad(int num, int digits) { - StringBuilder sb = new StringBuilder(); int iDigits = Integer.toString(num).length(); - - for (int i = 1; i <= digits - iDigits; ++i) - sb.append("0"); - - sb.append(num); - return sb.toString(); + return "0".repeat(Math.max(0, digits - iDigits)) + num; } protected static List topics(String... topics) { diff --git a/core/src/test/java/kafka/security/minikdc/MiniKdc.java b/core/src/test/java/kafka/security/minikdc/MiniKdc.java index 8c2e90f11a6..93cc1c31082 100644 --- a/core/src/test/java/kafka/security/minikdc/MiniKdc.java +++ b/core/src/test/java/kafka/security/minikdc/MiniKdc.java @@ -443,7 +443,7 @@ public class MiniKdc { reader.lines().forEach(line -> stringBuilder.append(line).append("{3}")); } String output = MessageFormat.format(stringBuilder.toString(), realm, host, String.valueOf(port), System.lineSeparator()); - Files.write(krb5conf.toPath(), output.getBytes(StandardCharsets.UTF_8)); + Files.writeString(krb5conf.toPath(), output); } private void refreshJvmKerberosConfig() throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { diff --git a/generator/src/main/java/org/apache/kafka/message/CodeBuffer.java b/generator/src/main/java/org/apache/kafka/message/CodeBuffer.java index 77febc957d9..46b82a3ee18 100644 --- a/generator/src/main/java/org/apache/kafka/message/CodeBuffer.java +++ b/generator/src/main/java/org/apache/kafka/message/CodeBuffer.java @@ -58,11 +58,7 @@ public class CodeBuffer { } private String indentSpaces() { - StringBuilder bld = new StringBuilder(); - for (int i = 0; i < indent; i++) { - bld.append(" "); - } - return bld.toString(); + return " ".repeat(Math.max(0, indent)); } @Override diff --git a/server/src/test/java/org/apache/kafka/server/metrics/LinuxIoMetricsCollectorTest.java b/server/src/test/java/org/apache/kafka/server/metrics/LinuxIoMetricsCollectorTest.java index ab2760e14db..8c96c5c5c10 100644 --- a/server/src/test/java/org/apache/kafka/server/metrics/LinuxIoMetricsCollectorTest.java +++ b/server/src/test/java/org/apache/kafka/server/metrics/LinuxIoMetricsCollectorTest.java @@ -25,7 +25,6 @@ import org.junit.jupiter.api.Timeout; import java.io.File; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -87,7 +86,7 @@ public class LinuxIoMetricsCollectorTest { "read_bytes: " + readBytes + "\n" + "write_bytes: " + writeBytes + "\n" + "cancelled_write_bytes: 0\n"; - Files.write(selfDir.resolve("io"), bld.getBytes(StandardCharsets.UTF_8)); + Files.writeString(selfDir.resolve("io"), bld); } } } diff --git a/shell/src/main/java/org/apache/kafka/shell/node/printer/ShellNodePrinter.java b/shell/src/main/java/org/apache/kafka/shell/node/printer/ShellNodePrinter.java index de412781442..e3e64624198 100644 --- a/shell/src/main/java/org/apache/kafka/shell/node/printer/ShellNodePrinter.java +++ b/shell/src/main/java/org/apache/kafka/shell/node/printer/ShellNodePrinter.java @@ -35,13 +35,7 @@ public class ShellNodePrinter implements MetadataNodePrinter { } String indentationString() { - StringBuilder bld = new StringBuilder(); - for (int i = 0; i < indentationLevel; i++) { - for (int j = 0; j < 2; j++) { - bld.append(" "); - } - } - return bld.toString(); + return " ".repeat(2).repeat(Math.max(0, indentationLevel)); } @Override diff --git a/storage/src/test/java/org/apache/kafka/tiered/storage/utils/LocalTieredStorageOutput.java b/storage/src/test/java/org/apache/kafka/tiered/storage/utils/LocalTieredStorageOutput.java index 4d5b577fbae..5d3029b71cb 100644 --- a/storage/src/test/java/org/apache/kafka/tiered/storage/utils/LocalTieredStorageOutput.java +++ b/storage/src/test/java/org/apache/kafka/tiered/storage/utils/LocalTieredStorageOutput.java @@ -39,7 +39,7 @@ public final class LocalTieredStorageOutput implements LocalTieredStorageT this.keyDe = keyDe; this.valueDe = valueDe; // Columns length + 5 column separators. - output += repeatString("-", 51 + 8 + 13 + 10 + (3 * 2)) + System.lineSeparator(); + output += "-".repeat(51 + 8 + 13 + 10 + (3 * 2)) + System.lineSeparator(); } private String row(String file, Object offset, String record, String ident) { @@ -54,14 +54,6 @@ public final class LocalTieredStorageOutput implements LocalTieredStorageT return row("", "", ""); } - private String repeatString(String str, int times) { - StringBuilder builder = new StringBuilder(); - for (int i = 0; i < times; i++) { - builder.append(str); - } - return builder.toString(); - } - @Override public void visitTopicIdPartition(TopicIdPartition topicIdPartition) { currentTopic = topicIdPartition.topicPartition().topic(); @@ -110,4 +102,4 @@ public final class LocalTieredStorageOutput implements LocalTieredStorageT this.t2 = t2; } } -} \ No newline at end of file +} diff --git a/streams/integration-tests/src/test/java/org/apache/kafka/streams/integration/HighAvailabilityTaskAssignorIntegrationTest.java b/streams/integration-tests/src/test/java/org/apache/kafka/streams/integration/HighAvailabilityTaskAssignorIntegrationTest.java index ce05eabb566..c57d7920faa 100644 --- a/streams/integration-tests/src/test/java/org/apache/kafka/streams/integration/HighAvailabilityTaskAssignorIntegrationTest.java +++ b/streams/integration-tests/src/test/java/org/apache/kafka/streams/integration/HighAvailabilityTaskAssignorIntegrationTest.java @@ -287,11 +287,7 @@ public class HighAvailabilityTaskAssignorIntegrationTest { } private static String getKiloByteValue() { - final StringBuilder kiloBuilder = new StringBuilder(1000); - for (int i = 0; i < 1000; i++) { - kiloBuilder.append('0'); - } - return kiloBuilder.toString(); + return "0".repeat(1000); } private static void assertFalseNoRetry(final boolean assertion, final String message) { diff --git a/streams/src/test/java/org/apache/kafka/streams/kstream/MaterializedTest.java b/streams/src/test/java/org/apache/kafka/streams/kstream/MaterializedTest.java index 57f57a61f41..93726825fa8 100644 --- a/streams/src/test/java/org/apache/kafka/streams/kstream/MaterializedTest.java +++ b/streams/src/test/java/org/apache/kafka/streams/kstream/MaterializedTest.java @@ -100,18 +100,12 @@ public class MaterializedTest { @Test public void shouldThrowTopologyExceptionIfStoreNameExceedsMaxAllowedLength() { - final StringBuffer invalidStoreNameBuffer = new StringBuffer(); final int maxNameLength = 249; - - for (int i = 0; i < maxNameLength + 1; i++) { - invalidStoreNameBuffer.append('a'); - } - - final String invalidStoreName = invalidStoreNameBuffer.toString(); + final String invalidStoreName = "a".repeat(maxNameLength + 1); final TopologyException e = assertThrows(TopologyException.class, () -> Materialized.as(invalidStoreName)); assertEquals(e.getMessage(), "Invalid topology: Name is illegal, it can't be longer than " + maxNameLength + " characters, name: " + invalidStoreName); } -} \ No newline at end of file +} diff --git a/tools/src/main/java/org/apache/kafka/tools/ProducerPerformance.java b/tools/src/main/java/org/apache/kafka/tools/ProducerPerformance.java index 7d7a2a2477f..ae6015ec18a 100644 --- a/tools/src/main/java/org/apache/kafka/tools/ProducerPerformance.java +++ b/tools/src/main/java/org/apache/kafka/tools/ProducerPerformance.java @@ -194,7 +194,7 @@ public class ProducerPerformance { throw new IllegalArgumentException("File does not exist or empty file provided."); } - String[] payloadList = new String(Files.readAllBytes(path), StandardCharsets.UTF_8).split(payloadDelimiter); + String[] payloadList = Files.readString(path).split(payloadDelimiter); System.out.println("Number of messages read: " + payloadList.length); diff --git a/tools/src/test/java/org/apache/kafka/tools/LeaderElectionCommandTest.java b/tools/src/test/java/org/apache/kafka/tools/LeaderElectionCommandTest.java index 9e912e6118b..29aca25debd 100644 --- a/tools/src/test/java/org/apache/kafka/tools/LeaderElectionCommandTest.java +++ b/tools/src/test/java/org/apache/kafka/tools/LeaderElectionCommandTest.java @@ -36,7 +36,6 @@ import org.mockito.ArgumentCaptor; import org.mockito.MockedStatic; import org.mockito.Mockito; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.time.Duration; @@ -325,7 +324,7 @@ public class LeaderElectionCommandTest { String jsonString = stringifyTopicPartitions(new HashSet<>(partitions)); - Files.write(file.toPath(), jsonString.getBytes(StandardCharsets.UTF_8)); + Files.writeString(file.toPath(), jsonString); return file.toPath(); } @@ -333,7 +332,7 @@ public class LeaderElectionCommandTest { private Path tempAdminConfig(String defaultApiTimeoutMs, String requestTimeoutMs) throws Exception { String content = "default.api.timeout.ms=" + defaultApiTimeoutMs + "\nrequest.timeout.ms=" + requestTimeoutMs; java.io.File file = TestUtils.tempFile("admin-config", ".properties"); - Files.write(file.toPath(), content.getBytes(StandardCharsets.UTF_8)); + Files.writeString(file.toPath(), content); return file.toPath(); } diff --git a/trogdor/src/test/java/org/apache/kafka/trogdor/common/JsonUtilTest.java b/trogdor/src/test/java/org/apache/kafka/trogdor/common/JsonUtilTest.java index 85059bb2b4a..6b7b67a894b 100644 --- a/trogdor/src/test/java/org/apache/kafka/trogdor/common/JsonUtilTest.java +++ b/trogdor/src/test/java/org/apache/kafka/trogdor/common/JsonUtilTest.java @@ -26,7 +26,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Timeout; import java.io.File; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -62,7 +61,7 @@ public class JsonUtilTest { assertEquals(1, JsonUtil.objectFromCommandLineArgument(" {\"bar\": 1} ", Foo.class).bar); File tempFile = TestUtils.tempFile(); try { - Files.write(tempFile.toPath(), "{\"bar\": 456}".getBytes(StandardCharsets.UTF_8)); + Files.writeString(tempFile.toPath(), "{\"bar\": 456}"); assertEquals(456, JsonUtil.objectFromCommandLineArgument(tempFile.getAbsolutePath(), Foo.class).bar); } finally { Files.delete(tempFile.toPath());