Skip to content

chore: formatter and linter #1314

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
428 changes: 428 additions & 0 deletions checkstyle.xml

Large diffs are not rendered by default.

56 changes: 29 additions & 27 deletions examples/powertools-examples-core/src/main/java/helloworld/App.java
Original file line number Diff line number Diff line change
@@ -1,34 +1,33 @@
package helloworld;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
import static software.amazon.lambda.powertools.metrics.MetricsUtils.metricsLogger;
import static software.amazon.lambda.powertools.metrics.MetricsUtils.withSingleMetric;
import static software.amazon.lambda.powertools.tracing.TracingUtils.putMetadata;
import static software.amazon.lambda.powertools.tracing.TracingUtils.withEntitySubsegment;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
import com.amazonaws.xray.AWSXRay;
import com.amazonaws.xray.entities.Entity;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import software.amazon.cloudwatchlogs.emf.model.DimensionSet;
import software.amazon.cloudwatchlogs.emf.model.Unit;
import software.amazon.lambda.powertools.logging.LoggingUtils;
import software.amazon.lambda.powertools.logging.Logging;
import software.amazon.lambda.powertools.logging.LoggingUtils;
import software.amazon.lambda.powertools.metrics.Metrics;
import software.amazon.lambda.powertools.tracing.CaptureMode;
import software.amazon.lambda.powertools.tracing.TracingUtils;
import software.amazon.lambda.powertools.tracing.Tracing;

import static software.amazon.lambda.powertools.metrics.MetricsUtils.metricsLogger;
import static software.amazon.lambda.powertools.metrics.MetricsUtils.withSingleMetric;
import static software.amazon.lambda.powertools.tracing.TracingUtils.putMetadata;
import static software.amazon.lambda.powertools.tracing.TracingUtils.withEntitySubsegment;
import software.amazon.lambda.powertools.tracing.TracingUtils;

/**
* Handler for requests to Lambda function.
Expand All @@ -47,10 +46,11 @@ public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEv

metricsLogger().putMetric("CustomMetric1", 1, Unit.COUNT);

withSingleMetric("CustomMetrics2", 1, Unit.COUNT, "Another", (metric) -> {
metric.setDimensions(DimensionSet.of("AnotherService", "CustomService"));
metric.setDimensions(DimensionSet.of("AnotherService1", "CustomService1"));
});
withSingleMetric("CustomMetrics2", 1, Unit.COUNT, "Another", (metric) ->
{
metric.setDimensions(DimensionSet.of("AnotherService", "CustomService"));
metric.setDimensions(DimensionSet.of("AnotherService1", "CustomService1"));
});

LoggingUtils.appendKey("test", "willBeLogged");

Expand All @@ -62,11 +62,12 @@ public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEv
TracingUtils.putAnnotation("Test", "New");
String output = String.format("{ \"message\": \"hello world\", \"location\": \"%s\" }", pageContents);

TracingUtils.withSubsegment("loggingResponse", subsegment -> {
String sampled = "log something out";
log.info(sampled);
log.info(output);
});
TracingUtils.withSubsegment("loggingResponse", subsegment ->
{
String sampled = "log something out";
log.info(sampled);
log.info(output);
});

threadOption1();

Expand All @@ -91,10 +92,11 @@ private void threadOption1() throws InterruptedException {

private void threadOption2() throws InterruptedException {
Entity traceEntity = AWSXRay.getTraceEntity();
Thread anotherThread = new Thread(() -> withEntitySubsegment("inlineLog", traceEntity, subsegment -> {
String var = "somethingToProcess";
log.info("inside threaded logging inline {}", var);
}));
Thread anotherThread = new Thread(() -> withEntitySubsegment("inlineLog", traceEntity, subsegment ->
{
String var = "somethingToProcess";
log.info("inside threaded logging inline {}", var);
}));
anotherThread.start();
anotherThread.join();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package helloworld;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
import com.fasterxml.jackson.databind.ObjectMapper;
import software.amazon.lambda.powertools.logging.Logging;
import software.amazon.lambda.powertools.metrics.Metrics;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,43 +1,45 @@
package helloworld;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
import com.amazonaws.xray.AWSXRay;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import static org.junit.Assert.*;

public class AppTest {

@Before
public void setup() {
if(null == System.getenv("LAMBDA_TASK_ROOT")) {
AWSXRay.beginSegment("test");
@Before
public void setup() {
if (null == System.getenv("LAMBDA_TASK_ROOT")) {
AWSXRay.beginSegment("test");
}
}
}

@After
public void tearDown() {
if (AWSXRay.getCurrentSubsegmentOptional().isPresent()) {
AWSXRay.endSubsegment();
}
@After
public void tearDown() {
if (AWSXRay.getCurrentSubsegmentOptional().isPresent()) {
AWSXRay.endSubsegment();
}

if(null == System.getenv("LAMBDA_TASK_ROOT")) {
AWSXRay.endSegment();
if (null == System.getenv("LAMBDA_TASK_ROOT")) {
AWSXRay.endSegment();
}
}
}

@Test
public void successfulResponse() {
App app = new App();
APIGatewayProxyResponseEvent result = app.handleRequest(null, null);
assertEquals(result.getStatusCode().intValue(), 200);
assertEquals(result.getHeaders().get("Content-Type"), "application/json");
String content = result.getBody();
assertNotNull(content);
assertTrue(content.contains("\"message\""));
assertTrue(content.contains("\"hello world\""));
assertTrue(content.contains("\"location\""));
}
@Test
public void successfulResponse() {
App app = new App();
APIGatewayProxyResponseEvent result = app.handleRequest(null, null);
assertEquals(result.getStatusCode().intValue(), 200);
assertEquals(result.getHeaders().get("Content-Type"), "application/json");
String content = result.getBody();
assertNotNull(content);
assertTrue(content.contains("\"message\""));
assertTrue(content.contains("\"hello world\""));
assertTrue(content.contains("\"location\""));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
Expand All @@ -14,14 +21,6 @@
import software.amazon.lambda.powertools.logging.Logging;
import software.amazon.lambda.powertools.utilities.JsonConfig;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;

public class App implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
private final static Logger log = LogManager.getLogger(App.class);

Expand All @@ -32,7 +31,8 @@ public App() {
public App(DynamoDbClient client) {
Idempotency.config().withConfig(
IdempotencyConfig.builder()
.withEventKeyJMESPath("powertools_json(body).address") // will retrieve the address field in the body which is a string transformed to json with `powertools_json`
.withEventKeyJMESPath(
"powertools_json(body).address") // will retrieve the address field in the body which is a string transformed to json with `powertools_json`
.build())
.withPersistenceStore(
DynamoDBPersistenceStore.builder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
import com.amazonaws.services.lambda.runtime.tests.EventLoader;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.URI;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
Expand All @@ -16,23 +19,24 @@
import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.*;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.URI;
import software.amazon.awssdk.services.dynamodb.model.AttributeDefinition;
import software.amazon.awssdk.services.dynamodb.model.BillingMode;
import software.amazon.awssdk.services.dynamodb.model.CreateTableRequest;
import software.amazon.awssdk.services.dynamodb.model.KeySchemaElement;
import software.amazon.awssdk.services.dynamodb.model.KeyType;
import software.amazon.awssdk.services.dynamodb.model.ScalarAttributeType;

public class AppTest {
private static DynamoDbClient client;
@Mock
private Context context;
private App app;
private static DynamoDbClient client;

@BeforeAll
public static void setupDynamoLocal() {
int port = getFreePort();
try {
DynamoDBProxyServer dynamoProxy = ServerRunner.createServerFromCommandLineArgs(new String[]{
DynamoDBProxyServer dynamoProxy = ServerRunner.createServerFromCommandLineArgs(new String[] {
"-inMemory",
"-port",
Integer.toString(port)
Expand Down Expand Up @@ -79,7 +83,8 @@ void setUp() {

@Test
public void testApp() {
APIGatewayProxyResponseEvent response = app.handleRequest(EventLoader.loadApiGatewayRestEvent("event.json"), context);
APIGatewayProxyResponseEvent response =
app.handleRequest(EventLoader.loadApiGatewayRestEvent("event.json"), context);
Assertions.assertNotNull(response);
Assertions.assertTrue(response.getBody().contains("hello world"));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,25 @@
package org.demo.parameters;

import static java.time.temporal.ChronoUnit.SECONDS;
import static software.amazon.lambda.powertools.parameters.transform.Transformer.base64;
import static software.amazon.lambda.powertools.parameters.transform.Transformer.json;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import software.amazon.lambda.powertools.parameters.ParamManager;
import software.amazon.lambda.powertools.parameters.SSMProvider;
import software.amazon.lambda.powertools.parameters.SecretsProvider;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;

import static java.time.temporal.ChronoUnit.SECONDS;
import static software.amazon.lambda.powertools.parameters.transform.Transformer.base64;
import static software.amazon.lambda.powertools.parameters.transform.Transformer.json;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import software.amazon.lambda.powertools.parameters.ParamManager;
import software.amazon.lambda.powertools.parameters.SSMProvider;
import software.amazon.lambda.powertools.parameters.SecretsProvider;

public class ParametersFunction implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
private final static Logger log = LogManager.getLogger();
Expand All @@ -34,8 +33,10 @@ public class ParametersFunction implements RequestHandler<APIGatewayProxyRequest
Map<String, String> allValues = ssmProvider.getMultiple("/powertools-java/sample");
String b64value = ssmProvider.withTransformation(base64).get("/powertools-java/sample/keybase64");

Map<String, String> secretJson = secretsProvider.withTransformation(json).get("/powertools-java/userpwd", Map.class);
MyObject secretJsonObj = secretsProvider.withMaxAge(42, SECONDS).withTransformation(json).get("/powertools-java/secretcode", MyObject.class);
Map<String, String> secretJson =
secretsProvider.withTransformation(json).get("/powertools-java/userpwd", Map.class);
MyObject secretJsonObj = secretsProvider.withMaxAge(42, SECONDS).withTransformation(json)
.get("/powertools-java/secretcode", MyObject.class);

@Override
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent input, Context context) {
Expand Down Expand Up @@ -72,9 +73,9 @@ public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent in
}
}

private String getPageContents(String address) throws IOException{
private String getPageContents(String address) throws IOException {
URL url = new URL(address);
try(BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
return br.lines().collect(Collectors.joining(System.lineSeparator()));
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package org.demo.serialization;

import static software.amazon.lambda.powertools.utilities.EventDeserializer.extractDataFrom;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.HashMap;
import java.util.Map;

import static software.amazon.lambda.powertools.utilities.EventDeserializer.extractDataFrom;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;


public class APIGatewayRequestDeserializationFunction implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
public class APIGatewayRequestDeserializationFunction
implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {

private final static Logger LOGGER = LogManager.getLogger(APIGatewayRequestDeserializationFunction.class);
private static final Map<String, String> HEADERS = new HashMap<String, String>() {{
Expand All @@ -28,9 +28,9 @@ public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent ev
LOGGER.info("product={}\n", product);

return new APIGatewayProxyResponseEvent()
.withHeaders(HEADERS)
.withStatusCode(200)
.withBody("Received request for productId: " + product.getId());
.withHeaders(HEADERS)
.withStatusCode(200)
.withBody("Received request for productId: " + product.getId());
}
}

Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
package org.demo.serialization;

import static software.amazon.lambda.powertools.utilities.EventDeserializer.extractDataFrom;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.SQSEvent;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.List;

import static software.amazon.lambda.powertools.utilities.EventDeserializer.extractDataFrom;


public class SQSEventDeserializationFunction implements RequestHandler<SQSEvent, String> {

Expand Down
Loading