From 9eb628f917c2ec84cd89c9ce41667202d6a53133 Mon Sep 17 00:00:00 2001 From: Joachim Grimm Date: Tue, 15 Nov 2022 12:13:58 +0100 Subject: [PATCH] fixes some small code review issues --- .../micronaut/nats/annotation/NatsClient.java | 6 ++-- .../connect/NatsConnectionFactoryConfig.java | 28 ++++++++----------- .../intercept/NatsIntroductionAdvice.java | 3 +- .../jetstream/annotation/JetStreamClient.java | 20 ++++++------- .../jetstream/bind/AcknowledgementBinder.java | 11 +++++--- .../jetstream/bind/NatsAcknowledgement.java | 12 ++++++-- 6 files changed, 39 insertions(+), 41 deletions(-) diff --git a/nats/src/main/java/io/micronaut/nats/annotation/NatsClient.java b/nats/src/main/java/io/micronaut/nats/annotation/NatsClient.java index 9f25b245..45aeb9bd 100644 --- a/nats/src/main/java/io/micronaut/nats/annotation/NatsClient.java +++ b/nats/src/main/java/io/micronaut/nats/annotation/NatsClient.java @@ -17,9 +17,7 @@ import io.micronaut.aop.Introduction; import io.micronaut.context.annotation.AliasFor; -import io.micronaut.context.annotation.Type; import io.micronaut.messaging.annotation.MessageProducer; -import io.micronaut.nats.intercept.NatsIntroductionAdvice; import jakarta.inject.Scope; import jakarta.inject.Singleton; @@ -31,8 +29,9 @@ /** * An introduction advice that automatically implemnts interfaces and abstract classes and publishes nats messages. + * * @author jgrimm - * @see NatsIntroductionAdvice + * @see io.micronaut.nats.intercept.NatsIntroductionAdvice * @since 1.0.0 */ @Documented @@ -40,7 +39,6 @@ @Target({ ElementType.TYPE }) @Scope @Introduction -@Type(NatsIntroductionAdvice.class) @Singleton @MessageProducer public @interface NatsClient { diff --git a/nats/src/main/java/io/micronaut/nats/connect/NatsConnectionFactoryConfig.java b/nats/src/main/java/io/micronaut/nats/connect/NatsConnectionFactoryConfig.java index 06242b00..ed2cce4a 100644 --- a/nats/src/main/java/io/micronaut/nats/connect/NatsConnectionFactoryConfig.java +++ b/nats/src/main/java/io/micronaut/nats/connect/NatsConnectionFactoryConfig.java @@ -15,6 +15,18 @@ */ package io.micronaut.nats.connect; +import io.micronaut.context.annotation.ConfigurationBuilder; +import io.micronaut.context.annotation.ConfigurationProperties; +import io.micronaut.context.annotation.EachProperty; +import io.micronaut.context.annotation.Parameter; +import io.micronaut.context.annotation.Requires; +import io.micronaut.core.annotation.Nullable; +import io.nats.client.JetStreamOptions; +import io.nats.client.Nats; +import io.nats.client.Options; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManagerFactory; import java.io.BufferedInputStream; import java.io.IOException; import java.nio.file.Files; @@ -31,20 +43,6 @@ import java.util.Map; import java.util.Optional; -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManagerFactory; - -import io.micronaut.context.annotation.ConfigurationBuilder; -import io.micronaut.context.annotation.ConfigurationProperties; -import io.micronaut.context.annotation.EachProperty; -import io.micronaut.context.annotation.Parameter; -import io.micronaut.context.annotation.Requires; -import io.micronaut.core.annotation.Introspected; -import io.micronaut.core.annotation.Nullable; -import io.nats.client.JetStreamOptions; -import io.nats.client.Nats; -import io.nats.client.Options; - import static io.nats.client.Options.Builder; import static io.nats.client.Options.DEFAULT_INBOX_PREFIX; import static io.nats.client.Options.DEFAULT_MAX_RECONNECT; @@ -471,7 +469,6 @@ private SSLContext createTlsContext() throws IOException, GeneralSecurityExcepti * @author Joachim Grimm * @since 4.0.0 */ - @Introspected @ConfigurationProperties("jetstream") public static class JetStreamConfiguration { @@ -520,7 +517,6 @@ public void setStreams(Map streams) { /** * Manages a single stream configuration. */ - @Introspected @EachProperty(value = "streams") public static class StreamConfiguration { diff --git a/nats/src/main/java/io/micronaut/nats/intercept/NatsIntroductionAdvice.java b/nats/src/main/java/io/micronaut/nats/intercept/NatsIntroductionAdvice.java index 86e5065d..2408215b 100644 --- a/nats/src/main/java/io/micronaut/nats/intercept/NatsIntroductionAdvice.java +++ b/nats/src/main/java/io/micronaut/nats/intercept/NatsIntroductionAdvice.java @@ -212,8 +212,7 @@ protected StaticPublisherState buildPublisherState(ExecutableMethod method Optional subject = method.findAnnotation(Subject.class).flatMap(AnnotationValue::stringValue); - String connection = method.findAnnotation(NatsConnection.class) - .flatMap(conn -> conn.get("connection", String.class)) + String connection = method.stringValue(NatsConnection.class, "connection") .orElse(NatsConnection.DEFAULT_CONNECTION); Argument bodyArgument = findBodyArgument(method).orElseThrow( diff --git a/nats/src/main/java/io/micronaut/nats/jetstream/annotation/JetStreamClient.java b/nats/src/main/java/io/micronaut/nats/jetstream/annotation/JetStreamClient.java index 2ef69276..f7f2dbc7 100644 --- a/nats/src/main/java/io/micronaut/nats/jetstream/annotation/JetStreamClient.java +++ b/nats/src/main/java/io/micronaut/nats/jetstream/annotation/JetStreamClient.java @@ -15,28 +15,26 @@ */ package io.micronaut.nats.jetstream.annotation; -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - import io.micronaut.aop.Introduction; import io.micronaut.context.annotation.AliasFor; -import io.micronaut.context.annotation.Type; import io.micronaut.messaging.annotation.MessageProducer; import io.micronaut.nats.annotation.NatsConnection; -import io.micronaut.nats.jetstream.intercept.JetStreamIntroductionAdvice; -import io.micronaut.retry.annotation.Recoverable; import jakarta.inject.Scope; import jakarta.inject.Singleton; +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + + /** * An introduction advice that automatically implemnts interfaces and abstract classes and * publishes jetstream messages. * * @author Joachim Grimm - * @see JetStreamIntroductionAdvice + * @see io.micronaut.nats.jetstream.intercept.JetStreamIntroductionAdvice * @since 4.0.0 */ @Documented @@ -44,8 +42,6 @@ @Target({ ElementType.TYPE }) @Scope @Introduction -@Type(JetStreamIntroductionAdvice.class) -@Recoverable @Singleton @MessageProducer public @interface JetStreamClient { diff --git a/nats/src/main/java/io/micronaut/nats/jetstream/bind/AcknowledgementBinder.java b/nats/src/main/java/io/micronaut/nats/jetstream/bind/AcknowledgementBinder.java index 4abeb1a3..ef24a3db 100644 --- a/nats/src/main/java/io/micronaut/nats/jetstream/bind/AcknowledgementBinder.java +++ b/nats/src/main/java/io/micronaut/nats/jetstream/bind/AcknowledgementBinder.java @@ -15,9 +15,8 @@ */ package io.micronaut.nats.jetstream.bind; -import java.time.Duration; -import java.util.Optional; - +import io.micronaut.core.annotation.Internal; +import io.micronaut.core.annotation.NonNull; import io.micronaut.core.convert.ArgumentConversionContext; import io.micronaut.core.type.Argument; import io.micronaut.messaging.Acknowledgement; @@ -26,6 +25,9 @@ import io.nats.client.Message; import jakarta.inject.Singleton; +import java.time.Duration; +import java.util.Optional; + /** * Binds an argument of type {@link Acknowledgement} from the {@link Message}. * @@ -34,6 +36,7 @@ * @since 4.0.0 */ @Singleton +@Internal public class AcknowledgementBinder implements NatsTypeArgumentBinder { @Override @@ -55,7 +58,7 @@ public void nack() throws MessageAcknowledgementException { } @Override - public void nackWithDelay(Duration duration) { + public void nackWithDelay(@NonNull Duration duration) { source.nakWithDelay(duration); } }; diff --git a/nats/src/main/java/io/micronaut/nats/jetstream/bind/NatsAcknowledgement.java b/nats/src/main/java/io/micronaut/nats/jetstream/bind/NatsAcknowledgement.java index c4c195a5..31f371aa 100644 --- a/nats/src/main/java/io/micronaut/nats/jetstream/bind/NatsAcknowledgement.java +++ b/nats/src/main/java/io/micronaut/nats/jetstream/bind/NatsAcknowledgement.java @@ -15,10 +15,11 @@ */ package io.micronaut.nats.jetstream.bind; -import java.time.Duration; - +import io.micronaut.core.annotation.NonNull; import io.micronaut.messaging.Acknowledgement; +import java.time.Duration; + /** * A contract for acknowleding or rejecting messages. * @@ -27,6 +28,11 @@ */ public interface NatsAcknowledgement extends Acknowledgement { - void nackWithDelay(Duration duration); + /** + * nak acknowledges a JetStream message has been received but indicates that the message is not completely processed and should be sent again later, after at least the delay amount. + * + * @param duration {@link Duration} + */ + void nackWithDelay(@NonNull Duration duration); }