Skip to content

Commit d2dbf10

Browse files
author
Michael Brewer
authored
fix(example): Update the example to v1.2.0 (#288)
Also include some code clean up in general and try to get the gradle project to build
1 parent b6b7fd7 commit d2dbf10

File tree

13 files changed

+102
-110
lines changed

13 files changed

+102
-110
lines changed

example/HelloWorldFunction/build.gradle

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@ repositories {
88
}
99

1010
dependencies {
11-
implementation 'software.amazon.lambda:powertools-tracing:1.0.0'
12-
aspectpath 'software.amazon.lambda:powertools-tracing:1.0.0'
11+
implementation 'software.amazon.lambda:powertools-tracing:1.2.0'
12+
aspectpath 'software.amazon.lambda:powertools-tracing:1.2.0'
1313

14-
implementation 'software.amazon.lambda:powertools-logging:1.0.0'
15-
aspectpath 'software.amazon.lambda:powertools-logging:1.0.0'
14+
implementation 'software.amazon.lambda:powertools-logging:1.2.0'
15+
aspectpath 'software.amazon.lambda:powertools-logging:1.2.0'
1616

17-
implementation 'software.amazon.lambda:powertools-metrics:1.0.0'
18-
aspectpath 'software.amazon.lambda:powertools-metrics:1.0.0'
17+
implementation 'software.amazon.lambda:powertools-metrics:1.2.0'
18+
aspectpath 'software.amazon.lambda:powertools-metrics:1.2.0'
1919

20-
implementation 'software.amazon.lambda:powertools-sqs:1.0.0'
21-
aspectpath 'software.amazon.lambda:powertools-sqs:1.0.0'
20+
implementation 'software.amazon.lambda:powertools-sqs:1.2.0'
21+
aspectpath 'software.amazon.lambda:powertools-sqs:1.2.0'
2222

23-
implementation 'software.amazon.lambda:powertools-parameters:1.0.0'
24-
aspectpath 'software.amazon.lambda:powertools-parameters:1.0.0'
23+
implementation 'software.amazon.lambda:powertools-parameters:1.2.0'
24+
aspectpath 'software.amazon.lambda:powertools-parameters:1.2.0'
2525

26-
implementation 'software.amazon.lambda:powertools-validation:1.0.0'
27-
aspectpath 'software.amazon.lambda:powertools-validation:1.0.0'
26+
implementation 'software.amazon.lambda:powertools-validation:1.2.0'
27+
aspectpath 'software.amazon.lambda:powertools-validation:1.2.0'
2828

2929
implementation 'com.amazonaws:aws-lambda-java-core:1.2.0'
3030
implementation 'com.amazonaws:aws-lambda-java-events:3.1.0'
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

example/HelloWorldFunction/gradlew

100644100755
File mode changed.

example/HelloWorldFunction/pom.xml

Lines changed: 65 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>helloworld</groupId>
55
<artifactId>HelloWorld</artifactId>
@@ -49,9 +49,9 @@
4949
<version>1.2.0</version>
5050
</dependency>
5151
<dependency>
52-
<groupId>com.amazonaws</groupId>
53-
<artifactId>aws-lambda-java-events</artifactId>
54-
<version>3.1.0</version>
52+
<groupId>com.amazonaws</groupId>
53+
<artifactId>aws-lambda-java-events</artifactId>
54+
<version>3.1.0</version>
5555
</dependency>
5656
<dependency>
5757
<groupId>org.apache.logging.log4j</groupId>
@@ -70,70 +70,70 @@
7070
</dependency>
7171

7272
<dependency>
73-
<groupId>junit</groupId>
74-
<artifactId>junit</artifactId>
75-
<version>4.13.1</version>
76-
<scope>test</scope>
73+
<groupId>junit</groupId>
74+
<artifactId>junit</artifactId>
75+
<version>4.13.1</version>
76+
<scope>test</scope>
7777
</dependency>
7878
</dependencies>
7979

8080
<build>
81-
<plugins>
82-
<plugin>
83-
<!-- Refer https://github.com/awslabs/aws-lambda-powertools-java/issues/50 -->
84-
<groupId>com.nickwongdev</groupId>
85-
<artifactId>aspectj-maven-plugin</artifactId>
86-
<version>1.12.6</version>
87-
<configuration>
88-
<source>${maven.compiler.source}</source>
89-
<target>${maven.compiler.target}</target>
90-
<complianceLevel>${maven.compiler.target}</complianceLevel>
91-
<aspectLibraries>
92-
<aspectLibrary>
93-
<groupId>software.amazon.lambda</groupId>
94-
<artifactId>powertools-tracing</artifactId>
95-
</aspectLibrary>
96-
<aspectLibrary>
97-
<groupId>software.amazon.lambda</groupId>
98-
<artifactId>powertools-logging</artifactId>
99-
</aspectLibrary>
100-
<aspectLibrary>
101-
<groupId>software.amazon.lambda</groupId>
102-
<artifactId>powertools-metrics</artifactId>
103-
</aspectLibrary>
104-
<aspectLibrary>
105-
<groupId>software.amazon.lambda</groupId>
106-
<artifactId>powertools-sqs</artifactId>
107-
</aspectLibrary>
108-
<aspectLibrary>
109-
<groupId>software.amazon.lambda</groupId>
110-
<artifactId>powertools-validation</artifactId>
111-
</aspectLibrary>
112-
</aspectLibraries>
113-
</configuration>
114-
<executions>
115-
<execution>
116-
<goals>
117-
<goal>compile</goal>
118-
</goals>
119-
</execution>
120-
</executions>
121-
</plugin>
122-
<plugin>
123-
<groupId>org.apache.maven.plugins</groupId>
124-
<artifactId>maven-shade-plugin</artifactId>
125-
<version>3.1.1</version>
126-
<configuration>
127-
</configuration>
128-
<executions>
129-
<execution>
130-
<phase>package</phase>
131-
<goals>
132-
<goal>shade</goal>
133-
</goals>
134-
</execution>
135-
</executions>
136-
</plugin>
137-
</plugins>
81+
<plugins>
82+
<plugin>
83+
<!-- Refer https://github.com/awslabs/aws-lambda-powertools-java/issues/50 -->
84+
<groupId>com.nickwongdev</groupId>
85+
<artifactId>aspectj-maven-plugin</artifactId>
86+
<version>1.12.6</version>
87+
<configuration>
88+
<source>${maven.compiler.source}</source>
89+
<target>${maven.compiler.target}</target>
90+
<complianceLevel>${maven.compiler.target}</complianceLevel>
91+
<aspectLibraries>
92+
<aspectLibrary>
93+
<groupId>software.amazon.lambda</groupId>
94+
<artifactId>powertools-tracing</artifactId>
95+
</aspectLibrary>
96+
<aspectLibrary>
97+
<groupId>software.amazon.lambda</groupId>
98+
<artifactId>powertools-logging</artifactId>
99+
</aspectLibrary>
100+
<aspectLibrary>
101+
<groupId>software.amazon.lambda</groupId>
102+
<artifactId>powertools-metrics</artifactId>
103+
</aspectLibrary>
104+
<aspectLibrary>
105+
<groupId>software.amazon.lambda</groupId>
106+
<artifactId>powertools-sqs</artifactId>
107+
</aspectLibrary>
108+
<aspectLibrary>
109+
<groupId>software.amazon.lambda</groupId>
110+
<artifactId>powertools-validation</artifactId>
111+
</aspectLibrary>
112+
</aspectLibraries>
113+
</configuration>
114+
<executions>
115+
<execution>
116+
<goals>
117+
<goal>compile</goal>
118+
</goals>
119+
</execution>
120+
</executions>
121+
</plugin>
122+
<plugin>
123+
<groupId>org.apache.maven.plugins</groupId>
124+
<artifactId>maven-shade-plugin</artifactId>
125+
<version>3.2.4</version>
126+
<configuration>
127+
</configuration>
128+
<executions>
129+
<execution>
130+
<phase>package</phase>
131+
<goals>
132+
<goal>shade</goal>
133+
</goals>
134+
</execution>
135+
</executions>
136+
</plugin>
137+
</plugins>
138138
</build>
139139
</project>

example/HelloWorldFunction/src/main/java/helloworld/App.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import software.amazon.lambda.powertools.logging.LoggingUtils;
2222
import software.amazon.lambda.powertools.logging.Logging;
2323
import software.amazon.lambda.powertools.metrics.Metrics;
24+
import software.amazon.lambda.powertools.tracing.CaptureMode;
2425
import software.amazon.lambda.powertools.tracing.TracingUtils;
2526
import software.amazon.lambda.powertools.tracing.Tracing;
2627

@@ -33,11 +34,10 @@
3334
* Handler for requests to Lambda function.
3435
*/
3536
public class App implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
36-
37-
Logger log = LogManager.getLogger();
37+
private final static Logger log = LogManager.getLogger();
3838

3939
@Logging(logEvent = true, samplingRate = 0.7)
40-
@Tracing(captureError = false, captureResponse = false)
40+
@Tracing(captureMode = CaptureMode.RESPONSE_AND_ERROR)
4141
@Metrics(namespace = "ServerlessAirline", service = "payment", captureColdStart = true)
4242
public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent input, final Context context) {
4343
Map<String, String> headers = new HashMap<>();
@@ -84,13 +84,9 @@ public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEv
8484
}
8585

8686
private void threadOption1() throws InterruptedException {
87-
Entity traceEntity = AWSXRay.getTraceEntity();
88-
Thread thread = new Thread(() -> {
89-
AWSXRay.setTraceEntity(traceEntity);
90-
log();
91-
});
92-
thread.start();
93-
thread.join();
87+
final Entity traceEntity = AWSXRay.getTraceEntity();
88+
assert traceEntity != null;
89+
traceEntity.run(new Thread(this::log));
9490
}
9591

9692
private void threadOption2() throws InterruptedException {
@@ -108,8 +104,7 @@ private void log() {
108104
log.info("inside threaded logging for function");
109105
}
110106

111-
112-
@Tracing(namespace = "getPageContents", captureResponse = false, captureError = false)
107+
@Tracing(namespace = "getPageContents", captureMode = CaptureMode.DISABLED)
113108
private String getPageContents(String address) throws IOException {
114109
URL url = new URL(address);
115110
putMetadata("getPageContents", address);

example/HelloWorldFunction/src/main/java/helloworld/AppParams.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
import static software.amazon.lambda.powertools.parameters.transform.Transformer.json;
2424

2525
public class AppParams implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
26-
27-
Logger log = LogManager.getLogger();
26+
private final static Logger log = LogManager.getLogger();
2827

2928
SSMProvider ssmProvider = ParamManager.getSsmProvider();
3029
SecretsProvider secretsProvider = ParamManager.getSecretsProvider();

example/HelloWorldFunction/src/main/java/helloworld/AppSqsEvent.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,23 @@
1212
import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage;
1313

1414
public class AppSqsEvent implements RequestHandler<SQSEvent, String> {
15-
private static final Logger LOG = LogManager.getLogger(AppSqsEvent.class);
15+
private static final Logger log = LogManager.getLogger(AppSqsEvent.class);
1616

17-
@Override
1817
@SqsBatch(SampleMessageHandler.class)
1918
@Logging(logEvent = true)
19+
@Override
2020
public String handleRequest(SQSEvent input, Context context) {
2121
return "{\"statusCode\": 200}";
2222
}
2323

24-
public class SampleMessageHandler implements SqsMessageHandler<Object> {
24+
public static class SampleMessageHandler implements SqsMessageHandler<Object> {
2525

2626
@Override
2727
public String process(SQSMessage message) {
2828
if("19dd0b57-b21e-4ac1-bd88-01bbb068cb99".equals(message.getMessageId())) {
2929
throw new RuntimeException(message.getMessageId());
3030
}
31-
LOG.info("Processing message with details {}", message);
31+
log.info("Processing message with details {}", message);
3232
return message.getMessageId();
3333
}
3434
}

example/HelloWorldFunction/src/main/java/helloworld/AppSqsEventUtil.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import static java.util.Collections.emptyList;
1414

1515
public class AppSqsEventUtil implements RequestHandler<SQSEvent, List<String>> {
16-
private static final Logger LOG = LogManager.getLogger(AppSqsEventUtil.class);
16+
private static final Logger log = LogManager.getLogger(AppSqsEventUtil.class);
1717

1818
@Override
1919
public List<String> handleRequest(SQSEvent input, Context context) {
@@ -24,15 +24,15 @@ public List<String> handleRequest(SQSEvent input, Context context) {
2424
throw new RuntimeException(message.getMessageId());
2525
}
2626

27-
LOG.info("Processing message with details {}", message);
27+
log.info("Processing message with details {}", message);
2828
return message.getMessageId();
2929
});
3030

3131
} catch (SQSBatchProcessingException e) {
32-
LOG.info("Exception details {}", e.getMessage(), e);
33-
LOG.info("Success message Returns{}", e.successMessageReturnValues());
34-
LOG.info("Failed messages {}", e.getFailures());
35-
LOG.info("Failed messages Reasons {}", e.getExceptions());
32+
log.info("Exception details {}", e.getMessage(), e);
33+
log.info("Success message Returns{}", e.successMessageReturnValues());
34+
log.info("Failed messages {}", e.getFailures());
35+
log.info("Failed messages Reasons {}", e.getExceptions());
3636
return emptyList();
3737
}
3838
}

powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import static java.util.Optional.of;
2727

2828
public final class LambdaHandlerProcessor {
29+
// SERVICE_NAME cannot be final for testing purposes
2930
private static String SERVICE_NAME = null != System.getenv("POWERTOOLS_SERVICE_NAME")
3031
? System.getenv("POWERTOOLS_SERVICE_NAME") : "service_undefined";
3132
private static Boolean IS_COLD_START = null;

powertools-parameters/src/main/java/software/amazon/lambda/powertools/parameters/BaseProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ public BaseProvider(CacheManager cacheManager) {
5353
* Retrieve multiple parameter values from the underlying parameter store.<br />
5454
* Abstract: Implement this method in a child class of {@link BaseProvider}
5555
*
56-
* @param path
57-
* @return
56+
* @param path Parameter store path
57+
* @return Return map of parameter name value pairs
5858
*/
5959
protected abstract Map<String, String> getMultipleValues(String path);
6060

powertools-parameters/src/main/java/software/amazon/lambda/powertools/parameters/ParamManager.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public final class ParamManager {
3131
private static final CacheManager cacheManager = new CacheManager();
3232
private static final TransformationManager transformationManager = new TransformationManager();
3333

34+
// NOTE: For testing purposes `providers` cannot be final
3435
private static ConcurrentHashMap<Class<? extends BaseProvider>, BaseProvider> providers = new ConcurrentHashMap<>();
3536

3637
/**
@@ -43,7 +44,7 @@ public static <T extends BaseProvider> T getProvider(Class<T> providerClass) {
4344
if (providerClass == null) {
4445
throw new IllegalStateException("providerClass cannot be null.");
4546
}
46-
return (T) providers.computeIfAbsent(providerClass, (k) -> createProvider(k));
47+
return (T) providers.computeIfAbsent(providerClass, ParamManager::createProvider);
4748
}
4849

4950
/**

powertools-validation/src/main/java/software/amazon/lambda/powertools/validation/Validation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
String outboundSchema() default "";
9898

9999
/**
100-
* path to the subelement
100+
* path to the sub element
101101
*/
102102
String envelope() default "";
103103

powertools-validation/src/main/java/software/amazon/lambda/powertools/validation/ValidationException.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@
1313
*/
1414
package software.amazon.lambda.powertools.validation;
1515

16-
import com.fasterxml.jackson.core.JsonProcessingException;
17-
18-
import java.io.IOException;
19-
2016
public class ValidationException extends RuntimeException {
2117

2218
private static final long serialVersionUID = 1133341411263381508L;

0 commit comments

Comments
 (0)