From ce91178db802a37ef32b0dc2bb56dc161b42f0b3 Mon Sep 17 00:00:00 2001 From: Chris Bono Date: Mon, 6 Feb 2023 15:03:24 -0600 Subject: [PATCH] Misc cleanups (#317) * Replace `String.format` w/ `String.formatted` * Simplify LogAccessor usage * Replace `new LogAccessor(LogFactory.getLog(Class))` calls w/ `new LogAccessor(Class)` * Remove fully qualified refs in javadoc + code --- ...CheckClasspathForProhibitedDependencies.java | 6 +++--- .../versions/UpdateToSnapshotVersionTask.java | 2 +- ...lsarListenerAnnotationBeanPostProcessor.java | 17 ++++++++--------- .../DefaultReactivePulsarSenderFactory.java | 2 +- .../reactive/core/ReactivePulsarTemplate.java | 14 ++++++-------- ...aultReactiveMessageConsumerFactoryTests.java | 3 +-- ...efaultReactiveMessageReaderFactoryTests.java | 7 +++---- .../core/ReactivePulsarTemplateTests.java | 2 +- ...lsarListenerAnnotationBeanPostProcessor.java | 17 ++++++++--------- .../pulsar/config/PulsarClientFactoryBean.java | 3 +-- .../core/CachingPulsarProducerFactory.java | 13 ++++++------- .../core/DefaultPulsarProducerFactory.java | 2 +- .../pulsar/core/ProducerUtils.java | 4 ++-- .../pulsar/core/PulsarAdministration.java | 3 +-- .../pulsar/core/PulsarTemplate.java | 6 +++--- .../function/PulsarFunctionAdministration.java | 10 +++++----- .../DefaultPulsarMessageListenerContainer.java | 13 +++++++------ .../PulsarDeadLetterPublishingRecoverer.java | 3 +-- 18 files changed, 59 insertions(+), 68 deletions(-) diff --git a/buildSrc/src/main/java/org/springframework/boot/gradle/classpath/CheckClasspathForProhibitedDependencies.java b/buildSrc/src/main/java/org/springframework/boot/gradle/classpath/CheckClasspathForProhibitedDependencies.java index 398b01c5..76c42e6b 100644 --- a/buildSrc/src/main/java/org/springframework/boot/gradle/classpath/CheckClasspathForProhibitedDependencies.java +++ b/buildSrc/src/main/java/org/springframework/boot/gradle/classpath/CheckClasspathForProhibitedDependencies.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -57,9 +57,9 @@ public class CheckClasspathForProhibitedDependencies extends DefaultTask { .map((artifact) -> artifact.getModuleVersion().getId()).filter(this::prohibited) .map((id) -> id.getGroup() + ":" + id.getName()).collect(Collectors.toCollection(TreeSet::new)); if (!prohibited.isEmpty()) { - StringBuilder message = new StringBuilder(String.format("Found prohibited dependencies:%n")); + StringBuilder message = new StringBuilder("Found prohibited dependencies:%n".formatted()); for (String dependency : prohibited) { - message.append(String.format(" %s%n", dependency)); + message.append(" %s%n".formatted(dependency)); } throw new GradleException(message.toString()); } diff --git a/buildSrc/src/main/java/org/springframework/pulsar/gradle/versions/UpdateToSnapshotVersionTask.java b/buildSrc/src/main/java/org/springframework/pulsar/gradle/versions/UpdateToSnapshotVersionTask.java index 4bf132d6..2704fa72 100644 --- a/buildSrc/src/main/java/org/springframework/pulsar/gradle/versions/UpdateToSnapshotVersionTask.java +++ b/buildSrc/src/main/java/org/springframework/pulsar/gradle/versions/UpdateToSnapshotVersionTask.java @@ -44,7 +44,7 @@ public abstract class UpdateToSnapshotVersionTask extends UpdateProjectVersionTa patchSegment = String.valueOf(Integer.parseInt(patchSegment) + 1); } System.out.println("modifier = " + modifier); - return String.format("%s.%s.%s-SNAPSHOT", majorSegment, minorSegment, patchSegment); + return "%s.%s.%s-SNAPSHOT".formatted(majorSegment, minorSegment, patchSegment); } else { throw new IllegalStateException( diff --git a/spring-pulsar-reactive/src/main/java/org/springframework/pulsar/reactive/config/annotation/ReactivePulsarListenerAnnotationBeanPostProcessor.java b/spring-pulsar-reactive/src/main/java/org/springframework/pulsar/reactive/config/annotation/ReactivePulsarListenerAnnotationBeanPostProcessor.java index b7a3e14f..0b6ef07a 100644 --- a/spring-pulsar-reactive/src/main/java/org/springframework/pulsar/reactive/config/annotation/ReactivePulsarListenerAnnotationBeanPostProcessor.java +++ b/spring-pulsar-reactive/src/main/java/org/springframework/pulsar/reactive/config/annotation/ReactivePulsarListenerAnnotationBeanPostProcessor.java @@ -37,7 +37,6 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.BiFunction; -import org.apache.commons.logging.LogFactory; import org.apache.pulsar.client.api.DeadLetterPolicy; import org.springframework.aop.framework.Advised; @@ -120,7 +119,7 @@ import org.springframework.util.StringUtils; public class ReactivePulsarListenerAnnotationBeanPostProcessor implements BeanPostProcessor, Ordered, ApplicationContextAware, InitializingBean, SmartInitializingSingleton { - private final LogAccessor logger = new LogAccessor(LogFactory.getLog(getClass())); + private final LogAccessor logger = new LogAccessor(this.getClass()); /** * The bean name of the default {@link ReactivePulsarListenerContainerFactory}. @@ -508,7 +507,7 @@ public class ReactivePulsarListenerAnnotationBeanPostProcessor } else { throw new IllegalArgumentException( - String.format("@ReactivePulsarListener can't resolve '%s' as a String", resolvedValue)); + "@ReactivePulsarListener can't resolve '%s' as a String".formatted(resolvedValue)); } } @@ -536,12 +535,12 @@ public class ReactivePulsarListenerAnnotationBeanPostProcessor ReflectionUtils.handleReflectionException(ex); } catch (NoSuchMethodException ex) { - throw new IllegalStateException(String.format( - "@ReactivePulsarListener method '%s' found on bean target class '%s', " - + "but not found in any interface(s) for bean JDK proxy. Either " - + "pull the method up to an interface or switch to subclass (CGLIB) " - + "proxies by setting proxy-target-class/proxyTargetClass " + "attribute to 'true'", - method.getName(), method.getDeclaringClass().getSimpleName()), ex); + throw new IllegalStateException("@ReactivePulsarListener method '%s' found on bean target class '%s', " + + "but not found in any interface(s) for bean JDK proxy. Either " + + "pull the method up to an interface or switch to subclass (CGLIB) " + + "proxies by setting proxy-target-class/proxyTargetClass " + + "attribute to 'true'".formatted(method.getName(), method.getDeclaringClass().getSimpleName()), + ex); } } return method; diff --git a/spring-pulsar-reactive/src/main/java/org/springframework/pulsar/reactive/core/DefaultReactivePulsarSenderFactory.java b/spring-pulsar-reactive/src/main/java/org/springframework/pulsar/reactive/core/DefaultReactivePulsarSenderFactory.java index b27fe22e..b294ce8b 100644 --- a/spring-pulsar-reactive/src/main/java/org/springframework/pulsar/reactive/core/DefaultReactivePulsarSenderFactory.java +++ b/spring-pulsar-reactive/src/main/java/org/springframework/pulsar/reactive/core/DefaultReactivePulsarSenderFactory.java @@ -95,7 +95,7 @@ public class DefaultReactivePulsarSenderFactory implements ReactivePulsarSend @Nullable List> customizers) { String resolvedTopic = ReactiveMessageSenderUtils.resolveTopicName(topic, this); - this.logger.trace(() -> String.format("Creating reactive message sender for '%s' topic", resolvedTopic)); + this.logger.trace(() -> "Creating reactive message sender for '%s' topic".formatted(resolvedTopic)); ReactiveMessageSenderBuilder sender = this.reactivePulsarClient.messageSender(schema); sender.applySpec(this.reactiveMessageSenderSpec); sender.topic(resolvedTopic); diff --git a/spring-pulsar-reactive/src/main/java/org/springframework/pulsar/reactive/core/ReactivePulsarTemplate.java b/spring-pulsar-reactive/src/main/java/org/springframework/pulsar/reactive/core/ReactivePulsarTemplate.java index e7f58e1d..ebb2b1ce 100644 --- a/spring-pulsar-reactive/src/main/java/org/springframework/pulsar/reactive/core/ReactivePulsarTemplate.java +++ b/spring-pulsar-reactive/src/main/java/org/springframework/pulsar/reactive/core/ReactivePulsarTemplate.java @@ -128,12 +128,12 @@ public class ReactivePulsarTemplate implements ReactivePulsarOperations { @Nullable MessageSpecBuilderCustomizer messageSpecBuilderCustomizer, @Nullable ReactiveMessageSenderBuilderCustomizer customizer) { String topicName = resolveTopic(topic, message.getClass()); - this.logger.trace(() -> String.format("Sending reactive msg to '%s' topic", topicName)); + this.logger.trace(() -> "Sending reactive msg to '%s' topic".formatted(topicName)); ReactiveMessageSender sender = createMessageSender(topicName, message, schema, customizer); // @formatter:off return sender.sendOne(getMessageSpec(messageSpecBuilderCustomizer, message)) - .doOnError(ex -> this.logger.error(ex, () -> String.format("Failed to send message to '%s' topic", topicName))) - .doOnSuccess(msgId -> this.logger.trace(() -> String.format("Sent message to '%s' topic", topicName))); + .doOnError(ex -> this.logger.error(ex, () -> "Failed to send message to '%s' topic".formatted(topicName))) + .doOnSuccess(msgId -> this.logger.trace(() -> "Sent message to '%s' topic".formatted(topicName))); // @formatter:on } @@ -144,11 +144,9 @@ public class ReactivePulsarTemplate implements ReactivePulsarOperations { if (firstMessage != null && firstSignal.isOnNext()) { String topicName = resolveTopic(topic, firstMessage.getClass()); ReactiveMessageSender sender = createMessageSender(topicName, firstMessage, schema, customizer); - return messageFlux.map(MessageSpec::of).as(sender::sendMany) - .doOnError(ex -> this.logger.error(ex, - () -> String.format("Failed to send messages to '%s' topic", topicName))) - .doOnNext(msgId -> this.logger - .trace(() -> String.format("Sent messages to '%s' topic", topicName))); + return messageFlux.map(MessageSpec::of).as(sender::sendMany).doOnError( + ex -> this.logger.error(ex, () -> "Failed to send messages to '%s' topic".formatted(topicName))) + .doOnNext(msgId -> this.logger.trace(() -> "Sent messages to '%s' topic".formatted(topicName))); } // The flux has errored or is completed return messageFlux.thenMany(Flux.empty()); diff --git a/spring-pulsar-reactive/src/test/java/org/springframework/pulsar/reactive/core/DefaultReactiveMessageConsumerFactoryTests.java b/spring-pulsar-reactive/src/test/java/org/springframework/pulsar/reactive/core/DefaultReactiveMessageConsumerFactoryTests.java index 2602002e..d9cf54ef 100644 --- a/spring-pulsar-reactive/src/test/java/org/springframework/pulsar/reactive/core/DefaultReactiveMessageConsumerFactoryTests.java +++ b/spring-pulsar-reactive/src/test/java/org/springframework/pulsar/reactive/core/DefaultReactiveMessageConsumerFactoryTests.java @@ -32,8 +32,7 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; /** - * Tests for - * {@link org.springframework.pulsar.reactive.core.DefaultReactivePulsarConsumerFactory} + * Tests for {@link DefaultReactivePulsarConsumerFactory}. * * @author Christophe Bornet * @author Chris Bono diff --git a/spring-pulsar-reactive/src/test/java/org/springframework/pulsar/reactive/core/DefaultReactiveMessageReaderFactoryTests.java b/spring-pulsar-reactive/src/test/java/org/springframework/pulsar/reactive/core/DefaultReactiveMessageReaderFactoryTests.java index be6a2462..5a8e25de 100644 --- a/spring-pulsar-reactive/src/test/java/org/springframework/pulsar/reactive/core/DefaultReactiveMessageReaderFactoryTests.java +++ b/spring-pulsar-reactive/src/test/java/org/springframework/pulsar/reactive/core/DefaultReactiveMessageReaderFactoryTests.java @@ -30,8 +30,7 @@ import org.assertj.core.api.InstanceOfAssertFactories; import org.junit.jupiter.api.Test; /** - * Tests for - * {@link org.springframework.pulsar.reactive.core.DefaultReactivePulsarReaderFactory} + * Tests for {@link DefaultReactivePulsarReaderFactory}. * * @author Christophe Bornet */ @@ -43,7 +42,7 @@ class DefaultReactiveMessageReaderFactoryTests { void createReader() { MutableReactiveMessageReaderSpec spec = new MutableReactiveMessageReaderSpec(); spec.setReaderName("test-reader"); - org.springframework.pulsar.reactive.core.DefaultReactivePulsarReaderFactory readerFactory = new org.springframework.pulsar.reactive.core.DefaultReactivePulsarReaderFactory<>( + DefaultReactivePulsarReaderFactory readerFactory = new DefaultReactivePulsarReaderFactory<>( AdaptedReactivePulsarClientFactory.create((PulsarClient) null), spec); ReactiveMessageReader reader = readerFactory.createReader(schema); @@ -56,7 +55,7 @@ class DefaultReactiveMessageReaderFactoryTests { void createReaderWithCustomizer() { MutableReactiveMessageReaderSpec spec = new MutableReactiveMessageReaderSpec(); spec.setReaderName("test-reader"); - org.springframework.pulsar.reactive.core.DefaultReactivePulsarReaderFactory readerFactory = new DefaultReactivePulsarReaderFactory<>( + DefaultReactivePulsarReaderFactory readerFactory = new DefaultReactivePulsarReaderFactory<>( AdaptedReactivePulsarClientFactory.create((PulsarClient) null), spec); ReactiveMessageReader reader = readerFactory.createReader(schema, diff --git a/spring-pulsar-reactive/src/test/java/org/springframework/pulsar/reactive/core/ReactivePulsarTemplateTests.java b/spring-pulsar-reactive/src/test/java/org/springframework/pulsar/reactive/core/ReactivePulsarTemplateTests.java index a40ba121..564ef3b5 100644 --- a/spring-pulsar-reactive/src/test/java/org/springframework/pulsar/reactive/core/ReactivePulsarTemplateTests.java +++ b/spring-pulsar-reactive/src/test/java/org/springframework/pulsar/reactive/core/ReactivePulsarTemplateTests.java @@ -50,7 +50,7 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; /** - * Tests for {@link org.springframework.pulsar.reactive.core.ReactivePulsarTemplate}. + * Tests for {@link ReactivePulsarTemplate}. * * @author Christophe Bornet * @author Chris Bono diff --git a/spring-pulsar/src/main/java/org/springframework/pulsar/annotation/PulsarListenerAnnotationBeanPostProcessor.java b/spring-pulsar/src/main/java/org/springframework/pulsar/annotation/PulsarListenerAnnotationBeanPostProcessor.java index 21d1efa6..015ccb24 100644 --- a/spring-pulsar/src/main/java/org/springframework/pulsar/annotation/PulsarListenerAnnotationBeanPostProcessor.java +++ b/spring-pulsar/src/main/java/org/springframework/pulsar/annotation/PulsarListenerAnnotationBeanPostProcessor.java @@ -37,7 +37,6 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.BiFunction; -import org.apache.commons.logging.LogFactory; import org.apache.pulsar.client.api.DeadLetterPolicy; import org.apache.pulsar.client.api.RedeliveryBackoff; @@ -119,7 +118,7 @@ import org.springframework.util.StringUtils; public class PulsarListenerAnnotationBeanPostProcessor implements BeanPostProcessor, Ordered, ApplicationContextAware, InitializingBean, SmartInitializingSingleton { - private final LogAccessor logger = new LogAccessor(LogFactory.getLog(getClass())); + private final LogAccessor logger = new LogAccessor(this.getClass()); /** * The bean name of the default @@ -552,7 +551,7 @@ public class PulsarListenerAnnotationBeanPostProcessor } else { throw new IllegalArgumentException( - String.format("@PulsarListener can't resolve '%s' as a String", resolvedValue)); + "@PulsarListener can't resolve '%s' as a String".formatted(resolvedValue)); } } @@ -579,12 +578,12 @@ public class PulsarListenerAnnotationBeanPostProcessor ReflectionUtils.handleReflectionException(ex); } catch (NoSuchMethodException ex) { - throw new IllegalStateException(String.format( - "@PulsarListener method '%s' found on bean target class '%s', " - + "but not found in any interface(s) for bean JDK proxy. Either " - + "pull the method up to an interface or switch to subclass (CGLIB) " - + "proxies by setting proxy-target-class/proxyTargetClass " + "attribute to 'true'", - method.getName(), method.getDeclaringClass().getSimpleName()), ex); + throw new IllegalStateException("@PulsarListener method '%s' found on bean target class '%s', " + + "but not found in any interface(s) for bean JDK proxy. Either " + + "pull the method up to an interface or switch to subclass (CGLIB) " + + "proxies by setting proxy-target-class/proxyTargetClass " + + "attribute to 'true'".formatted(method.getName(), method.getDeclaringClass().getSimpleName()), + ex); } } return method; diff --git a/spring-pulsar/src/main/java/org/springframework/pulsar/config/PulsarClientFactoryBean.java b/spring-pulsar/src/main/java/org/springframework/pulsar/config/PulsarClientFactoryBean.java index 0cf31261..979b7021 100644 --- a/spring-pulsar/src/main/java/org/springframework/pulsar/config/PulsarClientFactoryBean.java +++ b/spring-pulsar/src/main/java/org/springframework/pulsar/config/PulsarClientFactoryBean.java @@ -16,7 +16,6 @@ package org.springframework.pulsar.config; -import org.apache.commons.logging.LogFactory; import org.apache.pulsar.client.api.PulsarClient; import org.springframework.beans.factory.FactoryBean; @@ -32,7 +31,7 @@ import org.springframework.lang.Nullable; */ public class PulsarClientFactoryBean extends AbstractFactoryBean { - private final LogAccessor logger = new LogAccessor(LogFactory.getLog(this.getClass())); + private final LogAccessor logger = new LogAccessor(this.getClass()); private final PulsarClientConfiguration pulsarClientConfiguration; diff --git a/spring-pulsar/src/main/java/org/springframework/pulsar/core/CachingPulsarProducerFactory.java b/spring-pulsar/src/main/java/org/springframework/pulsar/core/CachingPulsarProducerFactory.java index 710bb2be..6d373178 100644 --- a/spring-pulsar/src/main/java/org/springframework/pulsar/core/CachingPulsarProducerFactory.java +++ b/spring-pulsar/src/main/java/org/springframework/pulsar/core/CachingPulsarProducerFactory.java @@ -84,8 +84,8 @@ public class CachingPulsarProducerFactory extends DefaultPulsarProducerFactor .maximumSize(cacheMaximumSize).initialCapacity(cacheInitialCapacity) .scheduler(Scheduler.systemScheduler()).evictionListener( (RemovalListener, Producer>) (producerCacheKey, producer, cause) -> { - this.logger.debug(() -> String.format("Producer %s evicted from cache due to %s", - ProducerUtils.formatProducer(producer), cause)); + this.logger.debug(() -> "Producer %s evicted from cache due to %s" + .formatted(ProducerUtils.formatProducer(producer), cause)); closeProducer(producer); }) .build(); @@ -106,9 +106,8 @@ public class CachingPulsarProducerFactory extends DefaultPulsarProducerFactor try { Producer producer = super.doCreateProducer(schema, topic, encryptionKeys, customizers); return new ProducerWithCloseCallback<>(producer, - (p) -> this.logger - .trace(() -> String.format("Client closed producer %s but will skip actual closing", - ProducerUtils.formatProducer(producer)))); + (p) -> this.logger.trace(() -> "Client closed producer %s but will skip actual closing" + .formatted(ProducerUtils.formatProducer(producer)))); } catch (PulsarClientException ex) { throw new RuntimeException(ex); @@ -129,8 +128,8 @@ public class CachingPulsarProducerFactory extends DefaultPulsarProducerFactor actualProducer = wrappedProducer.getActualProducer(); } if (actualProducer == null) { - this.logger.warn(() -> String.format("Unable to get actual producer for %s - will skip closing it", - ProducerUtils.formatProducer(producer))); + this.logger.warn(() -> "Unable to get actual producer for %s - will skip closing it" + .formatted(ProducerUtils.formatProducer(producer))); return; } ProducerUtils.closeProducerAsync(actualProducer, this.logger); diff --git a/spring-pulsar/src/main/java/org/springframework/pulsar/core/DefaultPulsarProducerFactory.java b/spring-pulsar/src/main/java/org/springframework/pulsar/core/DefaultPulsarProducerFactory.java index 473a33a8..06050171 100644 --- a/spring-pulsar/src/main/java/org/springframework/pulsar/core/DefaultPulsarProducerFactory.java +++ b/spring-pulsar/src/main/java/org/springframework/pulsar/core/DefaultPulsarProducerFactory.java @@ -99,7 +99,7 @@ public class DefaultPulsarProducerFactory implements PulsarProducerFactory @Nullable Collection encryptionKeys, @Nullable List> customizers) throws PulsarClientException { String resolvedTopic = ProducerUtils.resolveTopicName(topic, this); - this.logger.trace(() -> String.format("Creating producer for '%s' topic", resolvedTopic)); + this.logger.trace(() -> "Creating producer for '%s' topic".formatted(resolvedTopic)); ProducerBuilder producerBuilder = this.pulsarClient.newProducer(schema); Map config = new HashMap<>(this.producerConfig); diff --git a/spring-pulsar/src/main/java/org/springframework/pulsar/core/ProducerUtils.java b/spring-pulsar/src/main/java/org/springframework/pulsar/core/ProducerUtils.java index 1612177d..39a33731 100644 --- a/spring-pulsar/src/main/java/org/springframework/pulsar/core/ProducerUtils.java +++ b/spring-pulsar/src/main/java/org/springframework/pulsar/core/ProducerUtils.java @@ -35,7 +35,7 @@ final class ProducerUtils { } static String formatProducer(Producer producer) { - return String.format("(%s:%s)", producer.getProducerName(), producer.getTopic()); + return "(%s:%s)".formatted(producer.getProducerName(), producer.getTopic()); } static String resolveTopicName(@Nullable String userSpecifiedTopic, PulsarProducerFactory producerFactory) { @@ -49,7 +49,7 @@ final class ProducerUtils { static void closeProducerAsync(Producer producer, LogAccessor logger) { producer.closeAsync().exceptionally(e -> { - logger.warn(e, () -> String.format("Failed to close producer %s", ProducerUtils.formatProducer(producer))); + logger.warn(e, () -> "Failed to close producer %s".formatted(ProducerUtils.formatProducer(producer))); return null; }); } diff --git a/spring-pulsar/src/main/java/org/springframework/pulsar/core/PulsarAdministration.java b/spring-pulsar/src/main/java/org/springframework/pulsar/core/PulsarAdministration.java index 55bf86a1..a9b0e5ec 100644 --- a/spring-pulsar/src/main/java/org/springframework/pulsar/core/PulsarAdministration.java +++ b/spring-pulsar/src/main/java/org/springframework/pulsar/core/PulsarAdministration.java @@ -26,7 +26,6 @@ import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; -import org.apache.commons.logging.LogFactory; import org.apache.pulsar.client.admin.PulsarAdmin; import org.apache.pulsar.client.admin.PulsarAdminBuilder; import org.apache.pulsar.client.admin.PulsarAdminException; @@ -52,7 +51,7 @@ import org.springframework.util.StringUtils; public class PulsarAdministration implements ApplicationContextAware, SmartInitializingSingleton, PulsarAdministrationOperations { - private final LogAccessor logger = new LogAccessor(LogFactory.getLog(this.getClass())); + private final LogAccessor logger = new LogAccessor(this.getClass()); private final PulsarAdminBuilder adminBuilder; diff --git a/spring-pulsar/src/main/java/org/springframework/pulsar/core/PulsarTemplate.java b/spring-pulsar/src/main/java/org/springframework/pulsar/core/PulsarTemplate.java index 2bef3c50..babe1509 100644 --- a/spring-pulsar/src/main/java/org/springframework/pulsar/core/PulsarTemplate.java +++ b/spring-pulsar/src/main/java/org/springframework/pulsar/core/PulsarTemplate.java @@ -184,7 +184,7 @@ public class PulsarTemplate implements PulsarOperations, BeanNameAware { String defaultTopic = Objects.toString(this.producerFactory.getProducerConfig().get("topicName"), null); String topicName = this.topicResolver.resolveTopic(topic, message, () -> defaultTopic).orElseThrow( () -> new IllegalArgumentException("Topic must be specified when no default topic is configured")); - this.logger.trace(() -> String.format("Sending msg to '%s' topic", topicName)); + this.logger.trace(() -> "Sending msg to '%s' topic".formatted(topicName)); PulsarMessageSenderContext senderContext = PulsarMessageSenderContext.newContext(topicName, this.beanName); Observation observation = newObservation(senderContext); @@ -201,11 +201,11 @@ public class PulsarTemplate implements PulsarOperations, BeanNameAware { return messageBuilder.sendAsync().whenComplete((msgId, ex) -> { if (ex == null) { - this.logger.trace(() -> String.format("Sent msg to '%s' topic", topicName)); + this.logger.trace(() -> "Sent msg to '%s' topic".formatted(topicName)); observation.stop(); } else { - this.logger.error(ex, () -> String.format("Failed to send msg to '%s' topic", topicName)); + this.logger.error(ex, () -> "Failed to send msg to '%s' topic".formatted(topicName)); observation.error(ex); observation.stop(); } diff --git a/spring-pulsar/src/main/java/org/springframework/pulsar/function/PulsarFunctionAdministration.java b/spring-pulsar/src/main/java/org/springframework/pulsar/function/PulsarFunctionAdministration.java index a92fd600..de038d61 100644 --- a/spring-pulsar/src/main/java/org/springframework/pulsar/function/PulsarFunctionAdministration.java +++ b/spring-pulsar/src/main/java/org/springframework/pulsar/function/PulsarFunctionAdministration.java @@ -224,7 +224,7 @@ public class PulsarFunctionAdministration implements SmartLifecycle { private String buildLogMsg(PulsarFunctionOperations function, boolean isUpdate, boolean isUrlArchive) { // '' (using (url|local) archive: // Ex: Updating 'Uppercase' function (using url archive: sink://foo.bar) - return String.format("%s %s (using %s archive: %s)", isUpdate ? "Updating" : "Creating", functionDesc(function), + return "%s %s (using %s archive: %s)".formatted(isUpdate ? "Updating" : "Creating", functionDesc(function), isUrlArchive ? "url" : "local", function.archive()); } @@ -289,15 +289,15 @@ public class PulsarFunctionAdministration implements SmartLifecycle { private Optional enforceStopPolicyOnFunction(PulsarFunctionOperations function, PulsarAdmin admin) { return switch (function.stopPolicy()) { case NONE -> { - this.logger.info(() -> String.format("No stop policy for %s - leaving alone", functionDesc(function))); + this.logger.info(() -> "No stop policy for %s - leaving alone".formatted(functionDesc(function))); yield Optional.empty(); } case STOP -> { - this.logger.info(() -> String.format("Stopping %s", functionDesc(function))); + this.logger.info(() -> "Stopping %s".formatted(functionDesc(function))); yield safeInvoke(() -> function.stop(admin)); } case DELETE -> { - this.logger.info(() -> String.format("Deleting %s", functionDesc(function))); + this.logger.info(() -> "Deleting %s".formatted(functionDesc(function))); yield safeInvoke(() -> function.delete(admin)); } }; @@ -314,7 +314,7 @@ public class PulsarFunctionAdministration implements SmartLifecycle { } private String functionDesc(PulsarFunctionOperations function) { - return String.format("'%s' %s", function.name(), function.type().toString().toLowerCase()); + return "'%s' %s".formatted(function.name(), function.type().toString().toLowerCase()); } /** diff --git a/spring-pulsar/src/main/java/org/springframework/pulsar/listener/DefaultPulsarMessageListenerContainer.java b/spring-pulsar/src/main/java/org/springframework/pulsar/listener/DefaultPulsarMessageListenerContainer.java index 4d0d8a1b..78c95d54 100644 --- a/spring-pulsar/src/main/java/org/springframework/pulsar/listener/DefaultPulsarMessageListenerContainer.java +++ b/spring-pulsar/src/main/java/org/springframework/pulsar/listener/DefaultPulsarMessageListenerContainer.java @@ -37,7 +37,6 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import java.util.stream.StreamSupport; -import org.apache.commons.logging.LogFactory; import org.apache.pulsar.client.api.BatchReceivePolicy; import org.apache.pulsar.client.api.Consumer; import org.apache.pulsar.client.api.DeadLetterPolicy; @@ -512,9 +511,11 @@ public class DefaultPulsarMessageListenerContainer extends AbstractPulsarMess this.nackableMessages.add(message.getMessageId()); } else { - throw new IllegalStateException(String.format( - "Exception occurred and message %s was not auto-nacked; switch to AckMode BATCH or RECORD to enable auto-nacks", - message.getMessageId()), e); + throw new IllegalStateException( + + "Exception occurred and message %s was not auto-nacked; switch to AckMode BATCH or RECORD to enable auto-nacks" + .formatted(message.getMessageId()), + e); } } } @@ -672,7 +673,7 @@ public class DefaultPulsarMessageListenerContainer extends AbstractPulsarMess private static abstract class AbstractAcknowledgement implements Acknowledgement { - private static final LogAccessor logger = new LogAccessor(LogFactory.getLog(AbstractAcknowledgement.class)); + private static final LogAccessor logger = new LogAccessor(AbstractAcknowledgement.class); protected final Consumer consumer; @@ -691,7 +692,7 @@ public class DefaultPulsarMessageListenerContainer extends AbstractPulsarMess } catch (PulsarClientException pce) { AbstractAcknowledgement.logger.warn(pce, - () -> String.format("Acknowledgment failed for message: [%s]", messageId)); + () -> "Acknowledgment failed for message: [%s]".formatted(messageId)); consumer.negativeAcknowledge(messageId); } } diff --git a/spring-pulsar/src/main/java/org/springframework/pulsar/listener/PulsarDeadLetterPublishingRecoverer.java b/spring-pulsar/src/main/java/org/springframework/pulsar/listener/PulsarDeadLetterPublishingRecoverer.java index c3ebd11d..d80f1a2f 100644 --- a/spring-pulsar/src/main/java/org/springframework/pulsar/listener/PulsarDeadLetterPublishingRecoverer.java +++ b/spring-pulsar/src/main/java/org/springframework/pulsar/listener/PulsarDeadLetterPublishingRecoverer.java @@ -18,7 +18,6 @@ package org.springframework.pulsar.listener; import java.util.function.BiFunction; -import org.apache.commons.logging.LogFactory; import org.apache.pulsar.client.api.Consumer; import org.apache.pulsar.client.api.Message; import org.apache.pulsar.client.api.PulsarClientException; @@ -35,7 +34,7 @@ import org.springframework.pulsar.core.PulsarOperations; */ public class PulsarDeadLetterPublishingRecoverer implements PulsarMessageRecovererFactory { - protected final LogAccessor logger = new LogAccessor(LogFactory.getLog(this.getClass())); + protected final LogAccessor logger = new LogAccessor(this.getClass()); /** * TODO: Move this to a common constants class.