Skip to content

Commit 6c8d6c6

Browse files
committed
Add native maven profiles to idempotency-core.
1 parent c0f991a commit 6c8d6c6

File tree

3 files changed

+107
-17
lines changed

3 files changed

+107
-17
lines changed

powertools-idempotency/powertools-idempotency-core/pom.xml

Lines changed: 95 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,110 @@
3737
<groupId>software.amazon.lambda</groupId>
3838
<artifactId>powertools-serialization</artifactId>
3939
</dependency>
40+
4041
<!-- Test dependencies -->
42+
<dependency>
43+
<groupId>org.junit.jupiter</groupId>
44+
<artifactId>junit-jupiter-api</artifactId>
45+
<scope>test</scope>
46+
</dependency>
47+
<dependency>
48+
<groupId>org.junit.jupiter</groupId>
49+
<artifactId>junit-jupiter-engine</artifactId>
50+
<scope>test</scope>
51+
</dependency>
4152
<dependency>
4253
<groupId>org.mockito</groupId>
4354
<artifactId>mockito-core</artifactId>
4455
<scope>test</scope>
4556
</dependency>
57+
<dependency>
58+
<groupId>org.mockito</groupId>
59+
<artifactId>mockito-junit-jupiter</artifactId>
60+
<scope>test</scope>
61+
</dependency>
4662
<dependency>
4763
<groupId>org.slf4j</groupId>
4864
<artifactId>slf4j-simple</artifactId>
4965
<scope>test</scope>
5066
</dependency>
67+
<dependency>
68+
<groupId>software.amazon.lambda</groupId>
69+
<artifactId>powertools-common</artifactId>
70+
<version>${project.version}</version>
71+
<type>test-jar</type>
72+
<scope>test</scope>
73+
</dependency>
5174
</dependencies>
52-
</project>
75+
76+
<profiles>
77+
<profile>
78+
<id>generate-graalvm-files</id>
79+
<dependencies>
80+
<dependency>
81+
<groupId>org.mockito</groupId>
82+
<artifactId>mockito-subclass</artifactId>
83+
<scope>test</scope>
84+
</dependency>
85+
</dependencies>
86+
<build>
87+
<plugins>
88+
<plugin>
89+
<groupId>org.apache.maven.plugins</groupId>
90+
<artifactId>maven-surefire-plugin</artifactId>
91+
<configuration>
92+
<argLine>
93+
-Dorg.graalvm.nativeimage.imagecode=agent
94+
-agentlib:native-image-agent=config-output-dir=src/main/resources/META-INF/native-image/software.amazon.lambda/powertools-idempotency-core,experimental-class-define-support
95+
--add-opens java.base/java.util=ALL-UNNAMED
96+
--add-opens java.base/java.lang=ALL-UNNAMED
97+
</argLine>
98+
</configuration>
99+
</plugin>
100+
</plugins>
101+
</build>
102+
</profile>
103+
<profile>
104+
<id>graalvm-native</id>
105+
<dependencies>
106+
<dependency>
107+
<groupId>org.mockito</groupId>
108+
<artifactId>mockito-subclass</artifactId>
109+
<scope>test</scope>
110+
</dependency>
111+
</dependencies>
112+
<build>
113+
<plugins>
114+
<plugin>
115+
<groupId>org.graalvm.buildtools</groupId>
116+
<artifactId>native-maven-plugin</artifactId>
117+
<version>0.11.0</version>
118+
<extensions>true</extensions>
119+
<executions>
120+
<execution>
121+
<id>test-native</id>
122+
<goals>
123+
<goal>test</goal>
124+
</goals>
125+
<phase>test</phase>
126+
</execution>
127+
</executions>
128+
<configuration>
129+
<imageName>powertools-idempotency-core</imageName>
130+
<buildArgs>
131+
<buildArg>--add-opens java.base/java.util=ALL-UNNAMED</buildArg>
132+
<buildArg>--add-opens java.base/java.lang=ALL-UNNAMED</buildArg>
133+
<buildArg>--no-fallback</buildArg>
134+
<buildArg>--verbose</buildArg>
135+
<buildArg>--native-image-info</buildArg>
136+
<buildArg>-H:+UnlockExperimentalVMOptions</buildArg>
137+
<buildArg>-H:Log=registerResource:5</buildArg>
138+
<buildArg>-H:+ReportExceptionStackTraces</buildArg>
139+
</buildArgs>
140+
</configuration>
141+
</plugin>
142+
</plugins>
143+
</build>
144+
</profile>
145+
</profiles>
146+
</project>

powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyAspectTest.java

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,20 @@
2424
import static org.mockito.Mockito.spy;
2525
import static org.mockito.Mockito.verify;
2626
import static org.mockito.Mockito.verifyNoInteractions;
27-
import static org.mockito.Mockito.when;
2827

2928
import java.time.Instant;
3029
import java.util.OptionalInt;
3130
import java.util.OptionalLong;
3231

33-
import org.junit.jupiter.api.BeforeEach;
3432
import org.junit.jupiter.api.Test;
33+
import org.junit.jupiter.api.extension.ExtendWith;
3534
import org.junitpioneer.jupiter.SetEnvironmentVariable;
3635
import org.mockito.ArgumentCaptor;
3736
import org.mockito.Mock;
38-
import org.mockito.MockitoAnnotations;
37+
import org.mockito.junit.jupiter.MockitoExtension;
3938

4039
import com.amazonaws.services.lambda.runtime.Context;
40+
import software.amazon.lambda.powertools.common.stubs.TestLambdaContext;
4141
import com.fasterxml.jackson.core.JsonProcessingException;
4242
import com.fasterxml.jackson.databind.JsonNode;
4343

@@ -61,19 +61,14 @@
6161
import software.amazon.lambda.powertools.idempotency.persistence.DataRecord;
6262
import software.amazon.lambda.powertools.utilities.JsonConfig;
6363

64+
@ExtendWith(MockitoExtension.class)
6465
public class IdempotencyAspectTest {
6566

66-
@Mock
67-
private Context context;
67+
private Context context = new TestLambdaContext();
6868

6969
@Mock
7070
private BasePersistenceStore store;
7171

72-
@BeforeEach
73-
void setUp() {
74-
MockitoAnnotations.openMocks(this);
75-
}
76-
7772
@Test
7873
public void firstCall_shouldPutInStore() {
7974
Idempotency.config()
@@ -85,8 +80,6 @@ public void firstCall_shouldPutInStore() {
8580

8681
IdempotencyEnabledFunction function = new IdempotencyEnabledFunction();
8782

88-
when(context.getRemainingTimeInMillis()).thenReturn(30000);
89-
9083
Product p = new Product(42, "fake product", 12);
9184
Basket basket = function.handleRequest(p, context);
9285
assertThat(basket.getProducts()).hasSize(1);
@@ -124,8 +117,6 @@ public void firstCall_shouldPutInStoreAndNotApplyResponseHook() {
124117

125118
IdempotencyEnabledFunction function = new IdempotencyEnabledFunction();
126119

127-
when(context.getRemainingTimeInMillis()).thenReturn(30000);
128-
129120
Product p = new Product(42, "fake product", 12);
130121
Basket basket = function.handleRequest(p, context);
131122
assertThat(basket.getProducts()).hasSize(1); // Size should be 1 because response hook should not run
@@ -393,8 +384,6 @@ public void idempotencyOnSubMethodAnnotated_firstCall_shouldPutInStore() {
393384

394385
// WHEN
395386
boolean registerContext = true;
396-
when(context.getRemainingTimeInMillis()).thenReturn(30000);
397-
398387
IdempotencyInternalFunction function = new IdempotencyInternalFunction(registerContext);
399388
Product p = new Product(42, "fake product", 12);
400389
Basket basket = function.handleRequest(p, context);
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
org.slf4j.simpleLogger.logFile=target/idempotency-core-test.log
2+
org.slf4j.simpleLogger.defaultLogLevel=warn
3+
org.slf4j.simpleLogger.showDateTime=true
4+
org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS
5+
org.slf4j.simpleLogger.showThreadName=false
6+
org.slf4j.simpleLogger.showLogName=true
7+
org.slf4j.simpleLogger.showShortLogName=false

0 commit comments

Comments
 (0)