Skip to content

Commit 32d2c42

Browse files
Modify visibility of internal fields to be private (#29)
1 parent 0ce83d1 commit 32d2c42

File tree

7 files changed

+49
-28
lines changed

7 files changed

+49
-28
lines changed

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,12 @@
123123
<version>5.6.2</version>
124124
<scope>test</scope>
125125
</dependency>
126+
<dependency>
127+
<groupId>org.apache.commons</groupId>
128+
<artifactId>commons-lang3</artifactId>
129+
<version>3.11</version>
130+
<scope>test</scope>
131+
</dependency>
126132
<dependency>
127133
<groupId>org.mockito</groupId>
128134
<artifactId>mockito-core</artifactId>

src/main/java/software/amazon/lambda/internal/LambdaHandlerProcessor.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import org.aspectj.lang.ProceedingJoinPoint;
1010

1111
public final class LambdaHandlerProcessor {
12-
public static String SERVICE_NAME = null != System.getenv("POWERTOOLS_SERVICE_NAME")
12+
private static String SERVICE_NAME = null != System.getenv("POWERTOOLS_SERVICE_NAME")
1313
? System.getenv("POWERTOOLS_SERVICE_NAME") : "service_undefined";
14-
public static Boolean IS_COLD_START = null;
14+
private static Boolean IS_COLD_START = null;
1515

1616
public static boolean isHandlerMethod(ProceedingJoinPoint pjp) {
1717
return "handleRequest".equals(pjp.getSignature().getName());
@@ -30,4 +30,16 @@ public static boolean placedOnStreamHandler(ProceedingJoinPoint pjp) {
3030
&& pjp.getArgs()[1] instanceof OutputStream
3131
&& pjp.getArgs()[2] instanceof Context;
3232
}
33+
34+
public static String serviceName() {
35+
return SERVICE_NAME;
36+
}
37+
38+
public static Boolean isColdStart() {
39+
return IS_COLD_START;
40+
}
41+
42+
public static void coldStartDone() {
43+
IS_COLD_START = false;
44+
}
3345
}

src/main/java/software/amazon/lambda/logging/internal/LambdaLoggingAspect.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,12 @@
2323

2424
import static java.util.Optional.empty;
2525
import static java.util.Optional.of;
26-
import static software.amazon.lambda.internal.LambdaHandlerProcessor.IS_COLD_START;
27-
import static software.amazon.lambda.internal.LambdaHandlerProcessor.SERVICE_NAME;
26+
import static software.amazon.lambda.internal.LambdaHandlerProcessor.coldStartDone;
27+
import static software.amazon.lambda.internal.LambdaHandlerProcessor.isColdStart;
2828
import static software.amazon.lambda.internal.LambdaHandlerProcessor.isHandlerMethod;
2929
import static software.amazon.lambda.internal.LambdaHandlerProcessor.placedOnRequestHandler;
3030
import static software.amazon.lambda.internal.LambdaHandlerProcessor.placedOnStreamHandler;
31+
import static software.amazon.lambda.internal.LambdaHandlerProcessor.serviceName;
3132

3233
@Aspect
3334
public final class LambdaLoggingAspect {
@@ -45,8 +46,8 @@ public Object around(ProceedingJoinPoint pjp,
4546
extractContext(pjp)
4647
.ifPresent(context -> {
4748
ThreadContext.putAll(DefaultLambdaFields.values(context));
48-
ThreadContext.put("coldStart", null == IS_COLD_START ? "true" : "false");
49-
ThreadContext.put("service", SERVICE_NAME);
49+
ThreadContext.put("coldStart", null == isColdStart() ? "true" : "false");
50+
ThreadContext.put("service", serviceName());
5051
});
5152

5253

@@ -56,7 +57,7 @@ public Object around(ProceedingJoinPoint pjp,
5657

5758
Object proceed = pjp.proceed(proceedArgs);
5859

59-
IS_COLD_START = false;
60+
coldStartDone();
6061
return proceed;
6162
}
6263

src/main/java/software/amazon/lambda/tracing/PowerTracer.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.amazonaws.xray.entities.Entity;
77
import com.amazonaws.xray.entities.Subsegment;
88

9-
import static software.amazon.lambda.internal.LambdaHandlerProcessor.SERVICE_NAME;
9+
import static software.amazon.lambda.internal.LambdaHandlerProcessor.serviceName;
1010

1111
public final class PowerTracer {
1212

@@ -17,7 +17,7 @@ public static void putAnnotation(String key, String value) {
1717

1818
public static void putMetadata(String key, Object value) {
1919
String namespace = AWSXRay.getCurrentSubsegmentOptional()
20-
.map(Subsegment::getNamespace).orElse(SERVICE_NAME);
20+
.map(Subsegment::getNamespace).orElse(serviceName());
2121

2222
putMetadata(namespace, key, value);
2323
}
@@ -29,7 +29,7 @@ public static void putMetadata(String namespace, String key, Object value) {
2929

3030
public static void withEntitySubsegment(String name, Entity entity, Consumer<Subsegment> subsegment) {
3131
AWSXRay.setTraceEntity(entity);
32-
withEntitySubsegment(SERVICE_NAME, name, entity, subsegment);
32+
withEntitySubsegment(serviceName(), name, entity, subsegment);
3333
}
3434

3535
public static void withEntitySubsegment(String namespace, String name, Entity entity, Consumer<Subsegment> subsegment) {
@@ -38,7 +38,7 @@ public static void withEntitySubsegment(String namespace, String name, Entity en
3838
}
3939

4040
public static void withSubsegment(String name, Consumer<Subsegment> subsegment) {
41-
withSubsegment(SERVICE_NAME, name, subsegment);
41+
withSubsegment(serviceName(), name, subsegment);
4242
}
4343

4444
public static void withSubsegment(String namespace, String name, Consumer<Subsegment> subsegment) {

src/main/java/software/amazon/lambda/tracing/internal/LambdaTracingAspect.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@
77
import org.aspectj.lang.annotation.Around;
88
import org.aspectj.lang.annotation.Aspect;
99
import org.aspectj.lang.annotation.Pointcut;
10-
import software.amazon.lambda.internal.LambdaHandlerProcessor;
1110
import software.amazon.lambda.tracing.PowerToolTracing;
1211

13-
import static software.amazon.lambda.internal.LambdaHandlerProcessor.IS_COLD_START;
12+
import static software.amazon.lambda.internal.LambdaHandlerProcessor.coldStartDone;
13+
import static software.amazon.lambda.internal.LambdaHandlerProcessor.isColdStart;
1414
import static software.amazon.lambda.internal.LambdaHandlerProcessor.isHandlerMethod;
1515
import static software.amazon.lambda.internal.LambdaHandlerProcessor.placedOnRequestHandler;
1616
import static software.amazon.lambda.internal.LambdaHandlerProcessor.placedOnStreamHandler;
17+
import static software.amazon.lambda.internal.LambdaHandlerProcessor.serviceName;
1718

1819
@Aspect
1920
public final class LambdaTracingAspect {
@@ -35,7 +36,7 @@ public Object around(ProceedingJoinPoint pjp,
3536
boolean placedOnHandlerMethod = placedOnHandlerMethod(pjp);
3637

3738
if (placedOnHandlerMethod) {
38-
segment.putAnnotation("ColdStart", IS_COLD_START == null);
39+
segment.putAnnotation("ColdStart", isColdStart() == null);
3940
}
4041

4142

@@ -45,8 +46,7 @@ public Object around(ProceedingJoinPoint pjp,
4546
segment.putMetadata(namespace(powerToolsTracing), pjp.getSignature().getName() + " response", methodReturn);
4647
}
4748

48-
IS_COLD_START = false;
49-
49+
coldStartDone();
5050
return methodReturn;
5151
} catch (Exception e) {
5252
if (powerToolsTracing.captureError()) {
@@ -59,7 +59,7 @@ public Object around(ProceedingJoinPoint pjp,
5959
}
6060

6161
private String namespace(PowerToolTracing powerToolsTracing) {
62-
return powerToolsTracing.namespace().isEmpty() ? LambdaHandlerProcessor.SERVICE_NAME : powerToolsTracing.namespace();
62+
return powerToolsTracing.namespace().isEmpty() ? serviceName() : powerToolsTracing.namespace();
6363
}
6464

6565
private boolean placedOnHandlerMethod(ProceedingJoinPoint pjp) {

src/test/java/software/amazon/lambda/logging/internal/LambdaLoggingAspectTest.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@
1515
import org.junit.jupiter.api.BeforeEach;
1616
import org.junit.jupiter.api.Test;
1717
import org.mockito.Mock;
18-
import software.amazon.lambda.internal.LambdaHandlerProcessor;
19-
import software.amazon.lambda.handlers.PowerToolDisabled;
20-
import software.amazon.lambda.handlers.PowerToolDisabledForStream;
2118
import software.amazon.lambda.handlers.PowerLogToolEnabled;
2219
import software.amazon.lambda.handlers.PowerLogToolEnabledForStream;
20+
import software.amazon.lambda.handlers.PowerToolDisabled;
21+
import software.amazon.lambda.handlers.PowerToolDisabledForStream;
2322
import software.amazon.lambda.handlers.PowerToolLogEventEnabled;
2423
import software.amazon.lambda.handlers.PowerToolLogEventEnabledForStream;
24+
import software.amazon.lambda.internal.LambdaHandlerProcessor;
2525

26+
import static org.apache.commons.lang3.reflect.FieldUtils.writeStaticField;
2627
import static org.assertj.core.api.Assertions.assertThat;
2728
import static org.mockito.Mockito.when;
2829
import static org.mockito.MockitoAnnotations.initMocks;
@@ -37,10 +38,10 @@ class LambdaLoggingAspectTest {
3738
private Context context;
3839

3940
@BeforeEach
40-
void setUp() {
41+
void setUp() throws IllegalAccessException {
4142
initMocks(this);
4243
ThreadContext.clearAll();
43-
LambdaHandlerProcessor.IS_COLD_START = null;
44+
writeStaticField(LambdaHandlerProcessor.class, "IS_COLD_START", null, true);
4445
setupContext();
4546
requestHandler = new PowerLogToolEnabled();
4647
requestStreamHandler = new PowerLogToolEnabledForStream();
@@ -149,8 +150,8 @@ void shouldLogEventForStreamAndLambdaStreamIsValid() throws IOException {
149150
}
150151

151152
@Test
152-
void shouldLogServiceNameWhenEnvVarSet() {
153-
LambdaHandlerProcessor.SERVICE_NAME = "testService";
153+
void shouldLogServiceNameWhenEnvVarSet() throws IllegalAccessException {
154+
writeStaticField(LambdaHandlerProcessor.class, "SERVICE_NAME", "testService", true);
154155
requestHandler.handleRequest(new Object(), context);
155156

156157
assertThat(ThreadContext.getImmutableContext())

src/test/java/software/amazon/lambda/tracing/internal/LambdaTracingAspectTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,14 @@
1414
import org.mockito.Mock;
1515
import software.amazon.lambda.handlers.PowerToolDisabled;
1616
import software.amazon.lambda.handlers.PowerToolDisabledForStream;
17-
import software.amazon.lambda.handlers.PowerTracerToolEnabledForStreamWithNoMetaData;
18-
import software.amazon.lambda.handlers.PowerTracerToolEnabledWithException;
1917
import software.amazon.lambda.handlers.PowerTracerToolEnabled;
2018
import software.amazon.lambda.handlers.PowerTracerToolEnabledForStream;
19+
import software.amazon.lambda.handlers.PowerTracerToolEnabledForStreamWithNoMetaData;
20+
import software.amazon.lambda.handlers.PowerTracerToolEnabledWithException;
2121
import software.amazon.lambda.handlers.PowerTracerToolEnabledWithNoMetaData;
2222
import software.amazon.lambda.internal.LambdaHandlerProcessor;
2323

24+
import static org.apache.commons.lang3.reflect.FieldUtils.writeStaticField;
2425
import static org.assertj.core.api.Assertions.assertThat;
2526
import static org.assertj.core.api.Assertions.catchThrowable;
2627
import static org.mockito.Mockito.when;
@@ -34,9 +35,9 @@ class LambdaTracingAspectTest {
3435
private Context context;
3536

3637
@BeforeEach
37-
void setUp() {
38+
void setUp() throws IllegalAccessException {
3839
initMocks(this);
39-
LambdaHandlerProcessor.IS_COLD_START = null;
40+
writeStaticField(LambdaHandlerProcessor.class, "IS_COLD_START", null, true);
4041
setupContext();
4142
requestHandler = new PowerTracerToolEnabled();
4243
streamHandler = new PowerTracerToolEnabledForStream();

0 commit comments

Comments
 (0)