From 65675397d93570b485b6b7e6e8e82af1e468c607 Mon Sep 17 00:00:00 2001
From: Pankaj Agrawal
Date: Tue, 3 Nov 2020 09:54:51 +0100
Subject: [PATCH 1/5] Rename annotations and helpers for tracing module
---
docs/content/core/tracing.mdx | 26 +++++++++----------
.../src/main/java/helloworld/App.java | 18 ++++++-------
.../{PowertoolsTracing.java => Tracing.java} | 18 ++++++-------
.../{PowerTracer.java => TracingUtils.java} | 8 +++---
.../tracing/internal/LambdaTracingAspect.java | 22 ++++++++--------
...rTracerTest.java => TracingUtilsTest.java} | 17 ++++++------
.../handlers/PowerTracerToolEnabled.java | 4 +--
.../PowerTracerToolEnabledForStream.java | 4 +--
...cerToolEnabledForStreamWithNoMetaData.java | 4 +--
.../PowerTracerToolEnabledWithException.java | 4 +--
.../PowerTracerToolEnabledWithNoMetaData.java | 4 +--
11 files changed, 64 insertions(+), 65 deletions(-)
rename powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/{PowertoolsTracing.java => Tracing.java} (67%)
rename powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/{PowerTracer.java => TracingUtils.java} (97%)
rename powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/{PowerTracerTest.java => TracingUtilsTest.java} (92%)
diff --git a/docs/content/core/tracing.mdx b/docs/content/core/tracing.mdx
index a8a108e77..0e17bbc16 100644
--- a/docs/content/core/tracing.mdx
+++ b/docs/content/core/tracing.mdx
@@ -36,25 +36,25 @@ Resources:
The Powertools service name is used as the X-Ray namespace. This can be set using the environment variable
`POWERTOOLS_SERVICE_NAME`
-To enable Powertools tracing to your function add the @PowertoolsTracing annotation to your handleRequest method or on
+To enable Powertools tracing to your function add the @Tracing annotation to your handleRequest method or on
any method will capture the method as a separate subsegment automatically.
```java:title=LambdaHandler.java
public class App implements RequestHandler {
- @PowertoolsTracing
+ @Tracing
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent input, Context context) {
businessLogic1();
businessLogic2();
}
- @PowertoolsTracing
+ @Tracing
public void businessLogic1(){
}
- @PowertoolsTracing
+ @Tracing
public void businessLogic2(){
}
@@ -72,7 +72,7 @@ By default this annotation will automatically record method responses and except
```java:title=HandlerWithoutCapturingResponseOrError.java
public class App implements RequestHandler {
- @PowertoolsTracing(captureError = false, captureResponse = false)
+ @Tracing(captureError = false, captureResponse = false)
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent input, Context context) {
...
}
@@ -82,14 +82,14 @@ public class App implements RequestHandler {
- @PowertoolsTracing
+ @Tracing
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent input, Context context) {
- PowerTracer.putAnnotation("annotation", "value");
+ TracingUtils.putAnnotation("annotation", "value");
}
}
```
@@ -98,14 +98,14 @@ public class App implements RequestHandler {
- @PowertoolsTracing
+ @Tracing
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent input, Context context) {
- PowerTracer.putMetadata("content", "value");
+ TracingUtils.putMetadata("content", "value");
}
}
```
@@ -119,11 +119,11 @@ under a subsegment, or you are doing multithreaded programming. Refer examples b
public class App implements RequestHandler {
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent input, Context context) {
- PowerTracer.withSubsegment("loggingResponse", subsegment -> {
+ TracingUtils.withSubsegment("loggingResponse", subsegment -> {
// Some business logic
});
- PowerTracer.withSubsegment("localNamespace", "loggingResponse", subsegment -> {
+ TracingUtils.withSubsegment("localNamespace", "loggingResponse", subsegment -> {
// Some business logic
});
}
diff --git a/example/HelloWorldFunction/src/main/java/helloworld/App.java b/example/HelloWorldFunction/src/main/java/helloworld/App.java
index 2444a0cb6..d2fcee86d 100644
--- a/example/HelloWorldFunction/src/main/java/helloworld/App.java
+++ b/example/HelloWorldFunction/src/main/java/helloworld/App.java
@@ -21,13 +21,13 @@
import software.amazon.lambda.powertools.logging.PowertoolsLogger;
import software.amazon.lambda.powertools.logging.PowertoolsLogging;
import software.amazon.lambda.powertools.metrics.PowertoolsMetrics;
-import software.amazon.lambda.powertools.tracing.PowerTracer;
-import software.amazon.lambda.powertools.tracing.PowertoolsTracing;
+import software.amazon.lambda.powertools.tracing.TracingUtils;
+import software.amazon.lambda.powertools.tracing.Tracing;
import static software.amazon.lambda.powertools.metrics.PowertoolsMetricsLogger.metricsLogger;
import static software.amazon.lambda.powertools.metrics.PowertoolsMetricsLogger.withSingleMetric;
-import static software.amazon.lambda.powertools.tracing.PowerTracer.putMetadata;
-import static software.amazon.lambda.powertools.tracing.PowerTracer.withEntitySubsegment;
+import static software.amazon.lambda.powertools.tracing.TracingUtils.putMetadata;
+import static software.amazon.lambda.powertools.tracing.TracingUtils.withEntitySubsegment;
/**
* Handler for requests to Lambda function.
@@ -37,7 +37,7 @@ public class App implements RequestHandler headers = new HashMap<>();
@@ -59,10 +59,10 @@ public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEv
try {
final String pageContents = this.getPageContents("https://checkip.amazonaws.com");
log.info(pageContents);
- PowerTracer.putAnnotation("Test", "New");
+ TracingUtils.putAnnotation("Test", "New");
String output = String.format("{ \"message\": \"hello world\", \"location\": \"%s\" }", pageContents);
- PowerTracer.withSubsegment("loggingResponse", subsegment -> {
+ TracingUtils.withSubsegment("loggingResponse", subsegment -> {
String sampled = "log something out";
log.info(sampled);
log.info(output);
@@ -103,13 +103,13 @@ private void threadOption2() throws InterruptedException {
anotherThread.join();
}
- @PowertoolsTracing
+ @Tracing
private void log() {
log.info("inside threaded logging for function");
}
- @PowertoolsTracing(namespace = "getPageContents", captureResponse = false, captureError = false)
+ @Tracing(namespace = "getPageContents", captureResponse = false, captureError = false)
private String getPageContents(String address) throws IOException {
URL url = new URL(address);
putMetadata("getPageContents", address);
diff --git a/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowertoolsTracing.java b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/Tracing.java
similarity index 67%
rename from powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowertoolsTracing.java
rename to powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/Tracing.java
index 82b6169e7..d5817e638 100644
--- a/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowertoolsTracing.java
+++ b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/Tracing.java
@@ -19,34 +19,34 @@
import java.lang.annotation.Target;
/**
- * {@code PowertoolsTracing} is used to signal that the annotated method should
+ * {@code Tracing} is used to signal that the annotated method should
* be extended with the Powertools tracing functionality.
*
- *
{@code PowertoolsTracing} provides functionality to reduce the overhead
+ *
{@code Tracing} provides functionality to reduce the overhead
* of performing common tracing tasks.
*
- *
{@code PowertoolsTracing} should be used with the handleRequest method of a class
+ *
{@code Tracing} should be used with the handleRequest method of a class
* which implements either
* {@code com.amazonaws.services.lambda.runtime.RequestHandler} or
* {@code com.amazonaws.services.lambda.runtime.RequestStreamHandler}.
*
- *
By default {@code PowertoolsTracing} will capture responses and add them
+ *
By default {@code Tracing} will capture responses and add them
* to a sub segment named after the method.
*
- *
To disable this functionality you can specify {@code @PowertoolsTracing( captureResponse = false)}
+ *
To disable this functionality you can specify {@code @Tracing( captureResponse = false)}
*
- *
By default {@code PowertoolsTracing} will capture errors and add them
+ *
By default {@code Tracing} will capture errors and add them
* to a sub segment named after the method.
*
- *
To disable this functionality you can specify {@code @PowertoolsTracing( captureError = false)}
+ *
To disable this functionality you can specify {@code @Tracing( captureError = false)}
*e
- *
All traces have a namespace set. If {@code @PowertoolsTracing( namespace = "ExampleService")} is set
+ *
All traces have a namespace set. If {@code @Tracing( namespace = "ExampleService")} is set
* this takes precedent over any value set in the environment variable {@code POWER_TOOLS_SERVICE_NAME}.
* If both are undefined then the value will default to {@code service_undefined}
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
-public @interface PowertoolsTracing {
+public @interface Tracing {
String namespace() default "";
boolean captureResponse() default true;
boolean captureError() default true;
diff --git a/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowerTracer.java b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/TracingUtils.java
similarity index 97%
rename from powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowerTracer.java
rename to powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/TracingUtils.java
index 24f593ccc..51bcddce1 100644
--- a/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowerTracer.java
+++ b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/TracingUtils.java
@@ -26,7 +26,7 @@
* of use.
*
*/
-public final class PowerTracer {
+public final class TracingUtils {
/**
* Put an annotation to the current subsegment.
@@ -44,7 +44,7 @@ public static void putAnnotation(String key, String value) {
*
* The namespace used will be the namespace of the current subsegment if it
* is set else it will follow the namespace process as described in
- * {@link PowertoolsTracing}
+ * {@link Tracing}
*
* @param key the key of the metadata
* @param value the value of the metadata
@@ -72,7 +72,7 @@ public static void putMetadata(String namespace, String key, Object value) {
* Adds a new subsegment around the passed consumer. This also provides access to
* the newly created subsegment.
*
- * The namespace used follows the flow as described in {@link PowertoolsTracing}
+ * The namespace used follows the flow as described in {@link Tracing}
*
* This method is intended for use with multi-threaded programming where the
* context is lost between threads.
@@ -107,7 +107,7 @@ public static void withEntitySubsegment(String namespace, String name, Entity en
* Adds a new subsegment around the passed consumer. This also provides access to
* the newly created subsegment.
*
- * The namespace used follows the flow as described in {@link PowertoolsTracing}
+ * The namespace used follows the flow as described in {@link Tracing}
*
* @param name the name of the subsegment
* @param subsegment the x-ray subsegment for the wrapped consumer
diff --git a/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspect.java b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspect.java
index 54ef9a824..9aafa0a94 100644
--- a/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspect.java
+++ b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspect.java
@@ -19,7 +19,7 @@
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
-import software.amazon.lambda.powertools.tracing.PowertoolsTracing;
+import software.amazon.lambda.powertools.tracing.Tracing;
import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.coldStartDone;
import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.isColdStart;
@@ -32,17 +32,17 @@
public final class LambdaTracingAspect {
@SuppressWarnings({"EmptyMethod"})
- @Pointcut("@annotation(powerToolsTracing)")
- public void callAt(PowertoolsTracing powerToolsTracing) {
+ @Pointcut("@annotation(tracing)")
+ public void callAt(Tracing tracing) {
}
- @Around(value = "callAt(powerToolsTracing) && execution(@PowertoolsTracing * *.*(..))", argNames = "pjp,powerToolsTracing")
+ @Around(value = "callAt(tracing) && execution(@Tracing * *.*(..))", argNames = "pjp,tracing")
public Object around(ProceedingJoinPoint pjp,
- PowertoolsTracing powerToolsTracing) throws Throwable {
+ Tracing tracing) throws Throwable {
Object[] proceedArgs = pjp.getArgs();
Subsegment segment = AWSXRay.beginSubsegment("## " + pjp.getSignature().getName());
- segment.setNamespace(namespace(powerToolsTracing));
+ segment.setNamespace(namespace(tracing));
if (placedOnHandlerMethod(pjp)) {
segment.putAnnotation("ColdStart", isColdStart());
@@ -50,15 +50,15 @@ public Object around(ProceedingJoinPoint pjp,
try {
Object methodReturn = pjp.proceed(proceedArgs);
- if (powerToolsTracing.captureResponse()) {
- segment.putMetadata(namespace(powerToolsTracing), pjp.getSignature().getName() + " response", methodReturn);
+ if (tracing.captureResponse()) {
+ segment.putMetadata(namespace(tracing), pjp.getSignature().getName() + " response", methodReturn);
}
coldStartDone();
return methodReturn;
} catch (Exception e) {
- if (powerToolsTracing.captureError()) {
- segment.putMetadata(namespace(powerToolsTracing), pjp.getSignature().getName() + " error", e);
+ if (tracing.captureError()) {
+ segment.putMetadata(namespace(tracing), pjp.getSignature().getName() + " error", e);
}
throw e;
} finally {
@@ -66,7 +66,7 @@ public Object around(ProceedingJoinPoint pjp,
}
}
- private String namespace(PowertoolsTracing powerToolsTracing) {
+ private String namespace(Tracing powerToolsTracing) {
return powerToolsTracing.namespace().isEmpty() ? serviceName() : powerToolsTracing.namespace();
}
diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/PowerTracerTest.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/TracingUtilsTest.java
similarity index 92%
rename from powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/PowerTracerTest.java
rename to powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/TracingUtilsTest.java
index 1386b0a1d..2c65c90f1 100644
--- a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/PowerTracerTest.java
+++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/TracingUtilsTest.java
@@ -19,14 +19,13 @@
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import software.amazon.lambda.powertools.tracing.PowerTracer;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import static software.amazon.lambda.powertools.tracing.PowerTracer.withEntitySubsegment;
+import static software.amazon.lambda.powertools.tracing.TracingUtils.withEntitySubsegment;
-class PowerTracerTest {
+class TracingUtilsTest {
@BeforeEach
void setUp() {
@@ -46,7 +45,7 @@ void tearDown() {
void shouldSetAnnotationOnCurrentSubSegment() {
AWSXRay.beginSubsegment("subSegment");
- PowerTracer.putAnnotation("key", "val");
+ TracingUtils.putAnnotation("key", "val");
assertThat(AWSXRay.getTraceEntity().getAnnotations())
.hasSize(1)
@@ -55,7 +54,7 @@ void shouldSetAnnotationOnCurrentSubSegment() {
@Test
void shouldNotSetAnnotationIfNoCurrentSubSegment() {
- PowerTracer.putAnnotation("key", "val");
+ TracingUtils.putAnnotation("key", "val");
assertThat(AWSXRay.getTraceEntity().getAnnotations())
.isEmpty();
@@ -65,7 +64,7 @@ void shouldNotSetAnnotationIfNoCurrentSubSegment() {
void shouldSetMetadataOnCurrentSubSegment() {
AWSXRay.beginSubsegment("subSegment");
- PowerTracer.putMetadata("key", "val");
+ TracingUtils.putMetadata("key", "val");
assertThat(AWSXRay.getTraceEntity().getMetadata())
.hasSize(1)
@@ -78,7 +77,7 @@ void shouldSetMetadataOnCurrentSubSegment() {
@Test
void shouldNotSetMetaDataIfNoCurrentSubSegment() {
- PowerTracer.putMetadata("key", "val");
+ TracingUtils.putMetadata("key", "val");
assertThat(AWSXRay.getTraceEntity().getAnnotations())
.isEmpty();
@@ -88,7 +87,7 @@ void shouldNotSetMetaDataIfNoCurrentSubSegment() {
void shouldInvokeCodeBlockWrappedWithinSubsegment() {
Context test = mock(Context.class);
- PowerTracer.withSubsegment("testSubSegment", subsegment -> {
+ TracingUtils.withSubsegment("testSubSegment", subsegment -> {
subsegment.putAnnotation("key", "val");
subsegment.putMetadata("key", "val");
test.getFunctionName();
@@ -118,7 +117,7 @@ void shouldInvokeCodeBlockWrappedWithinSubsegment() {
void shouldInvokeCodeBlockWrappedWithinNamespacedSubsegment() {
Context test = mock(Context.class);
- PowerTracer.withSubsegment("testNamespace", "testSubSegment", subsegment -> {
+ TracingUtils.withSubsegment("testNamespace", "testSubSegment", subsegment -> {
subsegment.putAnnotation("key", "val");
subsegment.putMetadata("key", "val");
test.getFunctionName();
diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabled.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabled.java
index 3c2b58820..3be79fb76 100644
--- a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabled.java
+++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabled.java
@@ -15,12 +15,12 @@
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
-import software.amazon.lambda.powertools.tracing.PowertoolsTracing;
+import software.amazon.lambda.powertools.tracing.Tracing;
public class PowerTracerToolEnabled implements RequestHandler
*/
diff --git a/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsBatchProcessor.java b/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsBatch.java
similarity index 87%
rename from powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsBatchProcessor.java
rename to powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsBatch.java
index 342765052..bb6be3190 100644
--- a/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsBatchProcessor.java
+++ b/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsBatch.java
@@ -10,7 +10,7 @@
import static com.amazonaws.services.lambda.runtime.events.SQSEvent.*;
/**
- * {@link SqsBatchProcessor} is used to process batch messages in {@link SQSEvent}
+ * {@link SqsBatch} is used to process batch messages in {@link SQSEvent}
*
*
* When using the annotation, implementation of {@link SqsMessageHandler} is required. Annotation will take care of
@@ -29,14 +29,14 @@
*
*
* If you want to suppress the exception even if any message in batch fails, set
- * {@link SqsBatchProcessor#suppressException()} to true. By default its value is false
+ * {@link SqsBatch#suppressException()} to true. By default its value is false
*
*
*
* public class SqsMessageHandler implements RequestHandler {
*
* {@literal @}Override
- * {@literal @}{@link SqsBatchProcessor(SqsMessageHandler)}
+ * {@literal @}{@link SqsBatch (SqsMessageHandler)}
* public String handleRequest(SQSEvent sqsEvent, Context context) {
*
* return "ok";
@@ -54,7 +54,7 @@
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
-public @interface SqsBatchProcessor {
+public @interface SqsBatch {
Class extends SqsMessageHandler> value();
diff --git a/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/LargeMessageHandler.java b/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsLargeMessage.java
similarity index 77%
rename from powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/LargeMessageHandler.java
rename to powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsLargeMessage.java
index 9f67d2906..d96245006 100644
--- a/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/LargeMessageHandler.java
+++ b/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsLargeMessage.java
@@ -6,15 +6,15 @@
import java.lang.annotation.Target;
/**
- * {@code LargeMessageHandler} is used to signal that the annotated method
+ * {@code SqsLargeMessage} is used to signal that the annotated method
* should be extended to handle large SQS messages which have been offloaded
* to S3
*
- *
{@code LargeMessageHandler} automatically retrieves and deletes messages
+ *
{@code SqsLargeMessage} automatically retrieves and deletes messages
* which have been offloaded to S3 using the {@code amazon-sqs-java-extended-client-lib}
* client library.
*
- *
This version of the {@code LargeMessageHandler} is compatible with version
+ *
This version of the {@code SqsLargeMessage} is compatible with version
* 1.1.0+ of {@code amazon-sqs-java-extended-client-lib}.
*
*
@@ -25,7 +25,7 @@
* </dependency>
*
*
- *
{@code LargeMessageHandler} should be used with the handleRequest method of a class
+ *
{@code SqsLargeMessage} should be used with the handleRequest method of a class
* which implements {@code com.amazonaws.services.lambda.runtime.RequestHandler} with
* {@code com.amazonaws.services.lambda.runtime.events.SQSEvent} as the first parameter.
Using the default S3 Client {@code AmazonS3 amazonS3 = AmazonS3ClientBuilder.defaultClient();}
- * each record received in the SQSEvent {@code LargeMessageHandler} will checked
+ * each record received in the SQSEvent {@code SqsLargeMessage} will checked
* to see if it's body contains a payload which has been offloaded to S3. If it
* does then {@code getObject(bucket, key)} will be called and the payload
* retrieved.
@@ -57,12 +57,12 @@
* from S3 using {@code deleteObject(bucket, key)}
*
*
To disable deletion of payloads setting the following annotation parameter
- * {@code @LargeMessageHandler(deletePayloads=false)}
*
* @param Return value type from {@link SqsMessageHandler#process(SQSMessage)}
diff --git a/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/PowertoolsSqs.java b/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsUtils.java
similarity index 96%
rename from powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/PowertoolsSqs.java
rename to powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsUtils.java
index 01ded6410..3b775df21 100644
--- a/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/PowertoolsSqs.java
+++ b/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsUtils.java
@@ -35,17 +35,17 @@
/**
* A class of helper functions to add additional functionality to {@link SQSEvent} processing.
*/
-public final class PowertoolsSqs {
- private static final Log LOG = LogFactory.getLog(PowertoolsSqs.class);
+public final class SqsUtils {
+ private static final Log LOG = LogFactory.getLog(SqsUtils.class);
private static final ObjectMapper objectMapper = new ObjectMapper();
private static SqsClient client = SqsClient.create();
- private PowertoolsSqs() {
+ private SqsUtils() {
}
/**
- * This is a utility method when you want to avoid using {@code LargeMessageHandler} annotation.
+ * This is a utility method when you want to avoid using {@code SqsLargeMessage} annotation.
* Gives you access to enriched messages from S3 in the SQS event produced via extended client lib.
* If all the large S3 payload are successfully retrieved, it will delete them from S3 post success.
*
@@ -59,7 +59,7 @@ public static R enrichedMessageFromS3(final SQSEvent sqsEvent,
}
/**
- * This is a utility method when you want to avoid using {@code LargeMessageHandler} annotation.
+ * This is a utility method when you want to avoid using {@code SqsLargeMessage} annotation.
* Gives you access to enriched messages from S3 in the SQS event produced via extended client lib.
* if all the large S3 payload are successfully retrieved, Control if it will delete payload from S3 post success.
*
@@ -72,7 +72,7 @@ public static R enrichedMessageFromS3(final SQSEvent sqsEvent,
final Function, R> messageFunction) {
List sqsMessages = sqsEvent.getRecords().stream()
- .map(PowertoolsSqs::clonedMessage)
+ .map(SqsUtils::clonedMessage)
.collect(Collectors.toList());
List s3Pointers = processMessages(sqsMessages);
@@ -93,7 +93,7 @@ public static R enrichedMessageFromS3(final SQSEvent sqsEvent,
* @param client {@link SqsClient} to be used by utility
*/
public static void overrideSqsClient(SqsClient client) {
- PowertoolsSqs.client = client;
+ SqsUtils.client = client;
}
/**
@@ -116,7 +116,7 @@ public static void overrideSqsClient(SqsClient client) {
*
*
* If you dont want to utility to throw {@link SQSBatchProcessingException} in case of failures but rather suppress
- * it, Refer {@link PowertoolsSqs#batchProcessor(SQSEvent, boolean, Class)}
+ * it, Refer {@link SqsUtils#batchProcessor(SQSEvent, boolean, Class)}
*
*
* @param event {@link SQSEvent} received by lambda function.
@@ -184,7 +184,7 @@ public static List batchProcessor(final SQSEvent event,
*
*
* If you dont want to utility to throw {@link SQSBatchProcessingException} in case of failures but rather suppress
- * it, Refer {@link PowertoolsSqs#batchProcessor(SQSEvent, boolean, SqsMessageHandler)}
+ * it, Refer {@link SqsUtils#batchProcessor(SQSEvent, boolean, SqsMessageHandler)}
*
*
* @param event {@link SQSEvent} received by lambda function.
diff --git a/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsLargeMessageAspect.java b/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsLargeMessageAspect.java
index 64fafe38f..fef9f4715 100644
--- a/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsLargeMessageAspect.java
+++ b/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsLargeMessageAspect.java
@@ -20,7 +20,7 @@
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
-import software.amazon.lambda.powertools.sqs.LargeMessageHandler;
+import software.amazon.lambda.powertools.sqs.SqsLargeMessage;
import software.amazon.payloadoffloading.PayloadS3Pointer;
import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage;
@@ -34,13 +34,13 @@ public class SqsLargeMessageAspect {
private static AmazonS3 amazonS3 = AmazonS3ClientBuilder.defaultClient();
@SuppressWarnings({"EmptyMethod"})
- @Pointcut("@annotation(largeMessageHandler)")
- public void callAt(LargeMessageHandler largeMessageHandler) {
+ @Pointcut("@annotation(sqsLargeMessage)")
+ public void callAt(SqsLargeMessage sqsLargeMessage) {
}
- @Around(value = "callAt(largeMessageHandler) && execution(@LargeMessageHandler * *.*(..))", argNames = "pjp,largeMessageHandler")
+ @Around(value = "callAt(sqsLargeMessage) && execution(@SqsLargeMessage * *.*(..))", argNames = "pjp,sqsLargeMessage")
public Object around(ProceedingJoinPoint pjp,
- LargeMessageHandler largeMessageHandler) throws Throwable {
+ SqsLargeMessage sqsLargeMessage) throws Throwable {
Object[] proceedArgs = pjp.getArgs();
if (isHandlerMethod(pjp)
@@ -49,7 +49,7 @@ && placedOnSqsEventRequestHandler(pjp)) {
Object proceed = pjp.proceed(proceedArgs);
- if (largeMessageHandler.deletePayloads()) {
+ if (sqsLargeMessage.deletePayloads()) {
pointersToDelete.forEach(this::deleteMessageFromS3);
}
return proceed;
diff --git a/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsMessageBatchProcessorAspect.java b/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsMessageBatchProcessorAspect.java
index a6085219a..c704cb796 100644
--- a/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsMessageBatchProcessorAspect.java
+++ b/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsMessageBatchProcessorAspect.java
@@ -5,23 +5,23 @@
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
-import software.amazon.lambda.powertools.sqs.SqsBatchProcessor;
+import software.amazon.lambda.powertools.sqs.SqsBatch;
import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.isHandlerMethod;
-import static software.amazon.lambda.powertools.sqs.PowertoolsSqs.batchProcessor;
+import static software.amazon.lambda.powertools.sqs.SqsUtils.batchProcessor;
import static software.amazon.lambda.powertools.sqs.internal.SqsLargeMessageAspect.placedOnSqsEventRequestHandler;
@Aspect
public class SqsMessageBatchProcessorAspect {
@SuppressWarnings({"EmptyMethod"})
- @Pointcut("@annotation(sqsBatchProcessor)")
- public void callAt(SqsBatchProcessor sqsBatchProcessor) {
+ @Pointcut("@annotation(sqsBatch)")
+ public void callAt(SqsBatch sqsBatch) {
}
- @Around(value = "callAt(sqsBatchProcessor) && execution(@SqsBatchProcessor * *.*(..))", argNames = "pjp,sqsBatchProcessor")
+ @Around(value = "callAt(sqsBatch) && execution(@SqsBatch * *.*(..))", argNames = "pjp,sqsBatch")
public Object around(ProceedingJoinPoint pjp,
- SqsBatchProcessor sqsBatchProcessor) throws Throwable {
+ SqsBatch sqsBatch) throws Throwable {
Object[] proceedArgs = pjp.getArgs();
if (isHandlerMethod(pjp)
@@ -29,7 +29,7 @@ && placedOnSqsEventRequestHandler(pjp)) {
SQSEvent sqsEvent = (SQSEvent) proceedArgs[0];
- batchProcessor(sqsEvent, sqsBatchProcessor.suppressException(), sqsBatchProcessor.value());
+ batchProcessor(sqsEvent, sqsBatch.suppressException(), sqsBatch.value());
}
return pjp.proceed(proceedArgs);
diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/PowertoolsSqsBatchProcessorTest.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/SqsUtilsBatchProcessorTest.java
similarity index 97%
rename from powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/PowertoolsSqsBatchProcessorTest.java
rename to powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/SqsUtilsBatchProcessorTest.java
index c894081d4..727f64001 100644
--- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/PowertoolsSqsBatchProcessorTest.java
+++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/SqsUtilsBatchProcessorTest.java
@@ -25,10 +25,10 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;
-import static software.amazon.lambda.powertools.sqs.PowertoolsSqs.batchProcessor;
-import static software.amazon.lambda.powertools.sqs.PowertoolsSqs.overrideSqsClient;
+import static software.amazon.lambda.powertools.sqs.SqsUtils.batchProcessor;
+import static software.amazon.lambda.powertools.sqs.SqsUtils.overrideSqsClient;
-class PowertoolsSqsBatchProcessorTest {
+class SqsUtilsBatchProcessorTest {
private static final SqsClient sqsClient = mock(SqsClient.class);
private static final SqsClient interactionClient = mock(SqsClient.class);
diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/PowertoolsSqsLargeMessageTest.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/SqsUtilsLargeMessageTest.java
similarity index 91%
rename from powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/PowertoolsSqsLargeMessageTest.java
rename to powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/SqsUtilsLargeMessageTest.java
index 1581e2c44..d704b04e0 100644
--- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/PowertoolsSqsLargeMessageTest.java
+++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/SqsUtilsLargeMessageTest.java
@@ -35,7 +35,7 @@
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.openMocks;
-class PowertoolsSqsLargeMessageTest {
+class SqsUtilsLargeMessageTest {
@Mock
private AmazonS3 amazonS3;
@@ -56,7 +56,7 @@ public void testLargeMessage() {
when(amazonS3.getObject(BUCKET_NAME, BUCKET_KEY)).thenReturn(s3Response);
SQSEvent sqsEvent = messageWithBody("[\"software.amazon.payloadoffloading.PayloadS3Pointer\",{\"s3BucketName\":\"" + BUCKET_NAME + "\",\"s3Key\":\"" + BUCKET_KEY + "\"}]");
- Map sqsMessage = PowertoolsSqs.enrichedMessageFromS3(sqsEvent, sqsMessages -> {
+ Map sqsMessage = SqsUtils.enrichedMessageFromS3(sqsEvent, sqsMessages -> {
Map someBusinessLogic = new HashMap<>();
someBusinessLogic.put("Message", sqsMessages.get(0).getBody());
return someBusinessLogic;
@@ -78,7 +78,7 @@ public void testLargeMessageDeleteFromS3Toggle(boolean deleteS3Payload) {
when(amazonS3.getObject(BUCKET_NAME, BUCKET_KEY)).thenReturn(s3Response);
SQSEvent sqsEvent = messageWithBody("[\"software.amazon.payloadoffloading.PayloadS3Pointer\",{\"s3BucketName\":\"" + BUCKET_NAME + "\",\"s3Key\":\"" + BUCKET_KEY + "\"}]");
- Map sqsMessage = PowertoolsSqs.enrichedMessageFromS3(sqsEvent, deleteS3Payload, sqsMessages -> {
+ Map sqsMessage = SqsUtils.enrichedMessageFromS3(sqsEvent, deleteS3Payload, sqsMessages -> {
Map someBusinessLogic = new HashMap<>();
someBusinessLogic.put("Message", sqsMessages.get(0).getBody());
return someBusinessLogic;
@@ -102,7 +102,7 @@ public void shouldNotProcessSmallMessageBody() {
when(amazonS3.getObject(BUCKET_NAME, BUCKET_KEY)).thenReturn(s3Response);
SQSEvent sqsEvent = messageWithBody("This is small message");
- Map sqsMessage = PowertoolsSqs.enrichedMessageFromS3(sqsEvent, sqsMessages -> {
+ Map sqsMessage = SqsUtils.enrichedMessageFromS3(sqsEvent, sqsMessages -> {
Map someBusinessLogic = new HashMap<>();
someBusinessLogic.put("Message", sqsMessages.get(0).getBody());
return someBusinessLogic;
@@ -123,7 +123,7 @@ public void shouldFailEntireBatchIfFailedDownloadingFromS3(RuntimeException exce
SQSEvent sqsEvent = messageWithBody(messageBody);
assertThatExceptionOfType(SqsLargeMessageAspect.FailedProcessingLargePayloadException.class)
- .isThrownBy(() -> PowertoolsSqs.enrichedMessageFromS3(sqsEvent, sqsMessages -> sqsMessages.get(0).getBody()))
+ .isThrownBy(() -> SqsUtils.enrichedMessageFromS3(sqsEvent, sqsMessages -> sqsMessages.get(0).getBody()))
.withCause(exception);
verify(amazonS3, never()).deleteObject(BUCKET_NAME, BUCKET_KEY);
@@ -146,7 +146,7 @@ public void close() throws IOException {
SQSEvent sqsEvent = messageWithBody(messageBody);
assertThatExceptionOfType(SqsLargeMessageAspect.FailedProcessingLargePayloadException.class)
- .isThrownBy(() -> PowertoolsSqs.enrichedMessageFromS3(sqsEvent, sqsMessages -> sqsMessages.get(0).getBody()))
+ .isThrownBy(() -> SqsUtils.enrichedMessageFromS3(sqsEvent, sqsMessages -> sqsMessages.get(0).getBody()))
.withCauseInstanceOf(IOException.class);
verify(amazonS3, never()).deleteObject(BUCKET_NAME, BUCKET_KEY);
diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/LambdaHandlerApiGateway.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/LambdaHandlerApiGateway.java
index 5a61c3514..b0d8177ac 100644
--- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/LambdaHandlerApiGateway.java
+++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/LambdaHandlerApiGateway.java
@@ -3,15 +3,15 @@
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
-import software.amazon.lambda.powertools.sqs.LargeMessageHandler;
+import software.amazon.lambda.powertools.sqs.SqsLargeMessage;
import software.amazon.lambda.powertools.sqs.SampleSqsHandler;
-import software.amazon.lambda.powertools.sqs.SqsBatchProcessor;
+import software.amazon.lambda.powertools.sqs.SqsBatch;
public class LambdaHandlerApiGateway implements RequestHandler {
@Override
- @LargeMessageHandler
- @SqsBatchProcessor(value = SampleSqsHandler.class)
+ @SqsLargeMessage
+ @SqsBatch(value = SampleSqsHandler.class)
public String handleRequest(APIGatewayProxyRequestEvent sqsEvent, Context context) {
return sqsEvent.getBody();
}
diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchFailureSuppressedHandler.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchFailureSuppressedHandler.java
index 7bec0e091..acd6170c0 100644
--- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchFailureSuppressedHandler.java
+++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchFailureSuppressedHandler.java
@@ -3,7 +3,7 @@
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.SQSEvent;
-import software.amazon.lambda.powertools.sqs.SqsBatchProcessor;
+import software.amazon.lambda.powertools.sqs.SqsBatch;
import software.amazon.lambda.powertools.sqs.SqsMessageHandler;
import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage;
@@ -11,7 +11,7 @@
public class PartialBatchFailureSuppressedHandler implements RequestHandler {
@Override
- @SqsBatchProcessor(value = InnerMessageHandler.class, suppressException = true)
+ @SqsBatch(value = InnerMessageHandler.class, suppressException = true)
public String handleRequest(final SQSEvent sqsEvent,
final Context context) {
return "Success";
diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchPartialFailureHandler.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchPartialFailureHandler.java
index 6301f84ef..018e775f8 100644
--- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchPartialFailureHandler.java
+++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchPartialFailureHandler.java
@@ -3,7 +3,7 @@
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.SQSEvent;
-import software.amazon.lambda.powertools.sqs.SqsBatchProcessor;
+import software.amazon.lambda.powertools.sqs.SqsBatch;
import software.amazon.lambda.powertools.sqs.SqsMessageHandler;
import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage;
@@ -11,7 +11,7 @@
public class PartialBatchPartialFailureHandler implements RequestHandler {
@Override
- @SqsBatchProcessor(InnerMessageHandler.class)
+ @SqsBatch(InnerMessageHandler.class)
public String handleRequest(final SQSEvent sqsEvent,
final Context context) {
return "Success";
diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchSuccessHandler.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchSuccessHandler.java
index 009db08b9..a9e7a07d9 100644
--- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchSuccessHandler.java
+++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchSuccessHandler.java
@@ -3,7 +3,7 @@
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.SQSEvent;
-import software.amazon.lambda.powertools.sqs.SqsBatchProcessor;
+import software.amazon.lambda.powertools.sqs.SqsBatch;
import software.amazon.lambda.powertools.sqs.SqsMessageHandler;
import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage;
@@ -11,7 +11,7 @@
public class PartialBatchSuccessHandler implements RequestHandler {
@Override
- @SqsBatchProcessor(InnerMessageHandler.class)
+ @SqsBatch(InnerMessageHandler.class)
public String handleRequest(final SQSEvent sqsEvent,
final Context context) {
return "Success";
diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandler.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandler.java
index b3d7d4af7..ee8c100e6 100644
--- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandler.java
+++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandler.java
@@ -3,12 +3,12 @@
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.SQSEvent;
-import software.amazon.lambda.powertools.sqs.LargeMessageHandler;
+import software.amazon.lambda.powertools.sqs.SqsLargeMessage;
public class SqsMessageHandler implements RequestHandler {
@Override
- @LargeMessageHandler
+ @SqsLargeMessage
public String handleRequest(SQSEvent sqsEvent, Context context) {
return sqsEvent.getRecords().get(0).getBody();
}
diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsNoDeleteMessageHandler.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsNoDeleteMessageHandler.java
index a301a2a65..337592004 100644
--- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsNoDeleteMessageHandler.java
+++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsNoDeleteMessageHandler.java
@@ -3,12 +3,12 @@
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.SQSEvent;
-import software.amazon.lambda.powertools.sqs.LargeMessageHandler;
+import software.amazon.lambda.powertools.sqs.SqsLargeMessage;
public class SqsNoDeleteMessageHandler implements RequestHandler {
@Override
- @LargeMessageHandler(deletePayloads = false)
+ @SqsLargeMessage(deletePayloads = false)
public String handleRequest(SQSEvent sqsEvent, Context context) {
return sqsEvent.getRecords().get(0).getBody();
}
diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/internal/SqsMessageBatchProcessorAspectTest.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/internal/SqsMessageBatchProcessorAspectTest.java
index 7d7d3d023..a61981dff 100644
--- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/internal/SqsMessageBatchProcessorAspectTest.java
+++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/internal/SqsMessageBatchProcessorAspectTest.java
@@ -29,7 +29,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;
-import static software.amazon.lambda.powertools.sqs.PowertoolsSqs.overrideSqsClient;
+import static software.amazon.lambda.powertools.sqs.SqsUtils.overrideSqsClient;
public class SqsMessageBatchProcessorAspectTest {
public static final Random mockedRandom = mock(Random.class);
From bed4a58c503b1b6ed98d1d44a87dc11e2e26575b Mon Sep 17 00:00:00 2001
From: Pankaj Agrawal
Date: Tue, 3 Nov 2020 14:40:32 +0100
Subject: [PATCH 5/5] Fix broken links
---
docs/content/utilities/batch.mdx | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/docs/content/utilities/batch.mdx b/docs/content/utilities/batch.mdx
index 23fcf25f7..2a2d0ccd5 100644
--- a/docs/content/utilities/batch.mdx
+++ b/docs/content/utilities/batch.mdx
@@ -85,7 +85,7 @@ This utility requires additional permissions to work as expected. Lambda functio
## Processing messages from SQS
-You can use either **[SqsBatch annotation](#SqsBatch annotation)**, or **[SqsUtils Utility API](#SqsUtils Utility API)** as a fluent API.
+You can use either **[SqsBatch annotation](#sqsbatch-annotation)**, or **[SqsUtils Utility API](#sqsutils-utility-api)** as a fluent API.
Both have nearly the same behaviour when it comes to processing messages from the batch:
@@ -99,7 +99,7 @@ utility will have access to both successful and failed messaged along with failu
## Functional Interface SqsMessageHandler
-Both [annotation](#SqsBatch annotation) and [SqsUtils Utility API](#SqsUtils Utility API) requires an implementation of functional interface `SqsMessageHandler`.
+Both [annotation](#sqsbatch-annotation) and [SqsUtils Utility API](#sqsutils-utility-api) requires an implementation of functional interface `SqsMessageHandler`.
This implementation is responsible for processing each individual message from the batch, and to raise an exception if unable to process any of the messages sent.
@@ -116,7 +116,6 @@ All records in the batch will be passed to this handler for processing, even if
You will not have accessed to the processed messages within the Lambda Handler - all processing logic will and should be performed by the implemented SqsMessageHandler#process() function.
-
```java:title=App.java
@@ -192,7 +191,7 @@ public class AppSqsEvent implements RequestHandler> {
## Passing custom SqsClient
If you need to pass custom SqsClient such as region to the SDK, you can pass your own `SqsClient` to be used by utility either for
-**[SqsBatch annotation](#SqsBatch annotation)**, or **[SqsUtils Utility API](#SqsUtils Utility API)**.
+**[SqsBatch annotation](#sqsbatch-annotation)**, or **[SqsUtils Utility API](#sqsutils-utility-api)**.
```java:title=App.java