Skip to content

Commit b06bd64

Browse files
committed
Simplify powertools-parameters-secrets GraalVM config and fix issues in unit tests.
1 parent 19b4555 commit b06bd64

File tree

2 files changed

+25
-35
lines changed

2 files changed

+25
-35
lines changed

powertools-parameters/powertools-parameters-secrets/pom.xml

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<project xmlns="http://maven.apache.org/POM/4.0.0"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
55
<modelVersion>4.0.0</modelVersion>
66

77
<parent>
@@ -58,6 +58,11 @@
5858
<artifactId>mockito-core</artifactId>
5959
<scope>test</scope>
6060
</dependency>
61+
<dependency>
62+
<groupId>org.mockito</groupId>
63+
<artifactId>mockito-junit-jupiter</artifactId>
64+
<scope>test</scope>
65+
</dependency>
6166
<dependency>
6267
<groupId>org.slf4j</groupId>
6368
<artifactId>slf4j-simple</artifactId>
@@ -97,7 +102,9 @@
97102
<artifactId>maven-surefire-plugin</artifactId>
98103
<version>3.5.3</version>
99104
<configuration>
100-
<argLine>-Dmockito.mock.maker=subclass -Dorg.graalvm.nativeimage.imagecode=agent -agentlib:native-image-agent=config-output-dir=src/main/resources/META-INF/native-image/software.amazon.lambda/powertools-parameters-secrets,experimental-class-define-support
105+
<argLine>
106+
-Dorg.graalvm.nativeimage.imagecode=agent
107+
-agentlib:native-image-agent=config-output-dir=src/main/resources/META-INF/native-image/software.amazon.lambda/powertools-parameters-secrets,experimental-class-define-support
101108
--add-opens java.base/java.util=ALL-UNNAMED
102109
--add-opens java.base/java.lang=ALL-UNNAMED
103110
</argLine>
@@ -114,6 +121,13 @@
114121
<artifactId>mockito-subclass</artifactId>
115122
<scope>test</scope>
116123
</dependency>
124+
125+
<!-- Required explicitly for @Captor ArgumentCaptor -->
126+
<dependency>
127+
<groupId>org.junit.jupiter</groupId>
128+
<artifactId>junit-jupiter-params</artifactId>
129+
<scope>test</scope>
130+
</dependency>
117131
</dependencies>
118132
<build>
119133
<plugins>
@@ -137,33 +151,11 @@
137151
<buildArg>--add-opens java.base/java.util=ALL-UNNAMED</buildArg>
138152
<buildArg>--add-opens java.base/java.lang=ALL-UNNAMED</buildArg>
139153
<buildArg>--no-fallback</buildArg>
140-
<buildArg>-Dorg.graalvm.nativeimage.imagecode=agent</buildArg>
141-
<buildArg>-H:ClassInitialization=net.bytebuddy.ClassFileVersion:rerun</buildArg>
142-
<buildArg>-H:ClassInitialization=net.bytebuddy.utility.dispatcher.JavaDispatcher:rerun</buildArg>
143-
<buildArg>-H:ClassInitialization=net.bytebuddy.utility.Invoker$Dispatcher:rerun</buildArg>
144-
<buildArg>-H:ClassInitialization=net.bytebuddy.utility.GraalImageCode:rerun</buildArg>
145-
<buildArg>--initialize-at-build-time=org.slf4j.simple.SimpleLogger</buildArg>
146-
<buildArg>--initialize-at-build-time=org.slf4j.LoggerFactory</buildArg>
147-
<buildArg>--initialize-at-build-time=org.junit.Ignore</buildArg>
148-
<buildArg>--initialize-at-build-time=java.lang.annotation.Annotation</buildArg>
149-
<buildArg>--initialize-at-build-time=org.junit.runners.model.FrameworkField</buildArg>
150-
<buildArg>--initialize-at-build-time=net.bytebuddy.description.type.TypeDescription$AbstractBase</buildArg>
151-
<buildArg>--initialize-at-build-time=net.bytebuddy.implementation.bind.annotation.Argument$BindingMechanic</buildArg>
152-
<buildArg>--initialize-at-build-time=net.bytebuddy.implementation.bind.annotation.Argument$BindingMechanic$1</buildArg>
153-
<buildArg>--initialize-at-build-time=net.bytebuddy.implementation.bind.annotation.Argument$BindingMechanic$2</buildArg>
154-
<buildArg>--initialize-at-build-time=net.bytebuddy.utility.dispatcher.JavaDispatcher$DynamicClassLoader</buildArg>
155-
<buildArg>--initialize-at-build-time=net.bytebuddy.description.method.MethodDescription$InDefinedShape$AbstractBase$ForLoadedExecutable</buildArg>
156-
<buildArg>--initialize-at-build-time=net.bytebuddy.description.type.TypeDescription$AbstractBase</buildArg>
157-
<buildArg>--initialize-at-build-time=net.bytebuddy.description.type.TypeDescription$ForLoadedType</buildArg>
158-
<buildArg>--initialize-at-build-time=net.bytebuddy.description.method.MethodDescription$ForLoadedMethod</buildArg>
159-
<buildArg>--initialize-at-build-time=net.bytebuddy.implementation.bind.annotation.Super$Instantiation$2</buildArg>
160-
<buildArg>
161-
--trace-class-initialization=net.bytebuddy.description.type.TypeDescription$ForLoadedType,net.bytebuddy.description.method.MethodDescription$ForLoadedMethod,net.bytebuddy.description.method.MethodDescription$InDefinedShape$AbstractBase$ForLoadedExecutable
162-
</buildArg>
163154
<buildArg>--verbose</buildArg>
164155
<buildArg>--native-image-info</buildArg>
165156
<buildArg>-H:+UnlockExperimentalVMOptions</buildArg>
166157
<buildArg>-H:Log=registerResource:5</buildArg>
158+
<buildArg>-H:+ReportExceptionStackTraces</buildArg>
167159
</buildArgs>
168160
</configuration>
169161
</plugin>

powertools-parameters/powertools-parameters-secrets/src/test/java/software/amazon/lambda/powertools/parameters/secrets/SecretsProviderTest.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,21 @@
2525

2626
import org.junit.jupiter.api.BeforeEach;
2727
import org.junit.jupiter.api.Test;
28+
import org.junit.jupiter.api.extension.ExtendWith;
2829
import org.mockito.ArgumentCaptor;
2930
import org.mockito.Captor;
3031
import org.mockito.Mock;
3132
import org.mockito.Mockito;
32-
import org.mockito.MockitoAnnotations;
33+
import org.mockito.junit.jupiter.MockitoExtension;
34+
3335
import software.amazon.awssdk.core.SdkBytes;
3436
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
3537
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
3638
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
3739
import software.amazon.lambda.powertools.parameters.cache.CacheManager;
3840
import software.amazon.lambda.powertools.parameters.transform.TransformationManager;
3941

42+
@ExtendWith(MockitoExtension.class)
4043
public class SecretsProviderTest {
4144

4245
@Mock
@@ -54,7 +57,6 @@ public class SecretsProviderTest {
5457

5558
@BeforeEach
5659
public void init() {
57-
MockitoAnnotations.openMocks(this);
5860
cacheManager = new CacheManager();
5961
provider = new SecretsProvider(cacheManager, transformationManager, client);
6062
}
@@ -78,8 +80,8 @@ public void getValueBase64() {
7880
String key = "Key2";
7981
String expectedValue = "Value2";
8082
byte[] valueb64 = Base64.getEncoder().encode(expectedValue.getBytes());
81-
GetSecretValueResponse response =
82-
GetSecretValueResponse.builder().secretBinary(SdkBytes.fromByteArray(valueb64)).build();
83+
GetSecretValueResponse response = GetSecretValueResponse.builder()
84+
.secretBinary(SdkBytes.fromByteArray(valueb64)).build();
8385
Mockito.when(client.getSecretValue(paramCaptor.capture())).thenReturn(response);
8486

8587
String value = provider.getValue(key);
@@ -90,16 +92,13 @@ public void getValueBase64() {
9092

9193
@Test
9294
public void getMultipleValuesThrowsException() {
93-
9495
// Act & Assert
9596
assertThatRuntimeException().isThrownBy(() -> provider.getMultipleValues("path"))
9697
.withMessage("Impossible to get multiple values from AWS Secrets Manager");
97-
9898
}
9999

100100
@Test
101101
public void testGetSecretsProvider_withoutParameter_shouldCreateDefaultClient() {
102-
103102
// Act
104103
SecretsProvider secretsProvider = SecretsProvider.builder()
105104
.build();
@@ -111,11 +110,10 @@ public void testGetSecretsProvider_withoutParameter_shouldCreateDefaultClient()
111110

112111
@Test
113112
public void testGetSecretsProvider_withoutParameter_shouldHaveDefaultTransformationManager() {
114-
115113
// Act
116114
SecretsProvider secretsProvider = SecretsProvider.builder()
117115
.build();
118116
// Assert
119-
assertDoesNotThrow(()->secretsProvider.withTransformation(json));
117+
assertDoesNotThrow(() -> secretsProvider.withTransformation(json));
120118
}
121119
}

0 commit comments

Comments
 (0)