Skip to content

Commit 4ffa483

Browse files
committed
Renaming some modules
1 parent f35e292 commit 4ffa483

File tree

14 files changed

+84
-103
lines changed

14 files changed

+84
-103
lines changed

.github/workflows/release.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ jobs:
5151
path: ~/.m2
5252
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
5353
restore-keys: ${{ runner.os }}-m2
54+
- name: maven-settings-xml-action
55+
uses: whelk-io/maven-settings-xml-action@v22
56+
with:
57+
servers: '[{ "id": "github", "password": "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" }]'
5458
- name: Build with Maven
5559
env:
5660
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77

88
<!--- Please include the following in your Pull Request when applicable: -->
99

10-
- [ ] Describe what you did in the pull request description
10+
- [ ] Describe what you did in the pull secret description
1111
- [ ] Add Unit and Integration Tests - at least 80% unit tests for new code.
1212
- [ ] Added or updated documentation

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,4 +357,10 @@ Now that the setup is done you can deploy to AWS.
357357
"name": "CoffeeBeans"
358358
}'
359359
```
360-
3. Et voila! It runs with 500 ms for cold start.
360+
3. Et voila! It runs with 500 ms for cold start.
361+
362+
```shell
363+
curl --location --request POST 'https://lmk0qo0xrl.execute-api.ap-southeast-2.amazonaws.com/dev/
364+
--header 'Content-Type: application/json' \
365+
--data-raw '{ "env": "production", "costCentre": "1234", "applicationName": "some-app", "items": [ { "key": "GITHUB_TOKEN", "value": "WOAH" }, { "key": "AWS_ACCESS_KEY_ID", "value": "OMG" }, { "key": "AWS_SECRET_ACCESS_KEY", "value": "OH, NO" } ] }'
366+
```

cdk.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
{
2-
"app": "./mvnw exec:java -pl spring-native-aws-service-infra -Dexec.mainClass=com.coffeebeans.springnativeawslambda.infra.Application"
2+
"app": "./mvnw --settings /Users/muhammad/.m2/settings-nonqantas.xml exec:java -pl spring-native-aws-service-infra -Dexec.mainClass=com.coffeebeans.springnativeawslambda.infra.Application",
3+
"context": {
4+
"@aws-cdk/core:bootstrapQualifier": "cbcore"
5+
}
36
}

pom.xml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@
8484

8585
<dependencyManagement>
8686
<dependencies>
87-
8887
<dependency>
8988
<groupId>io.awspring.cloud</groupId>
9089
<artifactId>spring-cloud-aws-dependencies</artifactId>
@@ -298,16 +297,6 @@
298297
</plugins>
299298
</build>
300299

301-
<repositories>
302-
<repository>
303-
<id>github</id>
304-
<url>https://public:&#48;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@maven.pkg.github.com/muhamadto/*</url>
305-
<snapshots>
306-
<enabled>true</enabled>
307-
</snapshots>
308-
</repository>
309-
</repositories>
310-
311300
<licenses>
312301
<license>
313302
<name>Apache License, Version 2.0</name>

spring-native-aws-service-infra/src/main/java/com/coffeebeans/springnativeawslambda/infra/Application.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@
3737
public final class Application extends AbstractApp {
3838
private static final String ENVIRONMENT_NAME_DEV = "dev";
3939
private static final String ENVIRONMENT_NAME_PRD = "prd";
40-
private static final String LAMBDA_CODE_PATH = "spring-native-aws-service/target/spring-native-aws-function-native-zip.zip";
40+
private static final String LAMBDA_CODE_PATH = "spring-native-aws-service/target/spring-native-aws-service-native-zip.zip";
4141

4242
public static void main(final String... args) {
4343
final Application app = new Application();
4444

4545
final String env = System.getenv(KEY_ENV);
46-
checkNotNull(env, "'env' environment variable is required");
46+
checkNotNull(env, "'ENVIRONMENT' environment variable is required");
4747

4848
switch (env) {
4949
case ENVIRONMENT_NAME_DEV -> new SpringNativeAwsFunctionStack(app, COFFEE_BEANS_DEV_111111111111_AP_SOUTHEAST_2, LAMBDA_CODE_PATH, env);

spring-native-aws-service-infra/src/main/java/com/coffeebeans/springnativeawslambda/infra/SpringNativeAwsFunctionStack.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@
2222
import static software.amazon.awscdk.services.iam.ManagedPolicy.fromAwsManagedPolicyName;
2323
import static software.amazon.awscdk.services.lambda.Code.fromAsset;
2424

25-
import com.coffeebeans.cdk.core.AbstractApp;
2625
import com.coffeebeans.cdk.core.AbstractEnvironment;
27-
import com.coffeebeans.cdk.core.construct.BaseStack;
2826
import com.coffeebeans.cdk.core.construct.dynamodb.TableV2;
2927
import com.coffeebeans.cdk.core.construct.dynamodb.TableV2.TableProps;
3028
import com.coffeebeans.cdk.core.construct.lambda.CustomRuntime2023Function;
@@ -36,33 +34,36 @@
3634
import javax.validation.constraints.NotBlank;
3735
import org.apache.commons.lang3.StringUtils;
3836
import org.jetbrains.annotations.NotNull;
37+
import software.amazon.awscdk.DefaultStackSynthesizer;
3938
import software.amazon.awscdk.Duration;
39+
import software.amazon.awscdk.RemovalPolicy;
40+
import software.amazon.awscdk.Stack;
41+
import software.amazon.awscdk.StackProps;
4042
import software.amazon.awscdk.services.apigateway.LambdaRestApi;
4143
import software.amazon.awscdk.services.apigateway.Resource;
4244
import software.amazon.awscdk.services.apigateway.StageOptions;
4345
import software.amazon.awscdk.services.dynamodb.Attribute;
4446
import software.amazon.awscdk.services.dynamodb.AttributeType;
45-
import software.amazon.awscdk.services.iam.IGrantable;
4647
import software.amazon.awscdk.services.iam.IManagedPolicy;
4748
import software.amazon.awscdk.services.iam.Role;
4849
import software.amazon.awscdk.services.iam.ServicePrincipal;
4950
import software.amazon.awscdk.services.lambda.AssetCode;
5051
import software.amazon.awscdk.services.lambda.Function;
5152

52-
public class SpringNativeAwsFunctionStack extends BaseStack {
53+
public class SpringNativeAwsFunctionStack extends Stack {
5354

5455
private static final int LAMBDA_FUNCTION_TIMEOUT_IN_SECONDS = 3;
5556
private static final int LAMBDA_FUNCTION_MEMORY_SIZE = 512;
5657
private static final int LAMBDA_FUNCTION_RETRY_ATTEMPTS = 2;
5758
private static final String LAMBDA_HANDLER = "org.springframework.cloud.function.adapter.aws.FunctionInvoker::handleRequest";
5859
private static final String ENVIRONMENT_VARIABLE_SPRING_PROFILES_ACTIVE = "SPRING_PROFILES_ACTIVE";
5960

60-
61-
public SpringNativeAwsFunctionStack(@NotNull final AbstractApp app,
61+
public SpringNativeAwsFunctionStack(@NotNull final Application app,
6262
@NotNull final AbstractEnvironment environment,
6363
@NotBlank final String lambdaCodePath,
6464
@NotBlank final String stage) {
65-
super(app, environment);
65+
super(app, "SpringNativeAwsFunctionStack",
66+
StackProps.builder().synthesizer(DefaultStackSynthesizer.Builder.create().qualifier("cbcore").build()).build());
6667

6768
final List<IManagedPolicy> managedPolicies =
6869
List.of(fromAwsManagedPolicyName("service-role/AWSLambdaBasicExecutionRole"));
@@ -95,6 +96,7 @@ public SpringNativeAwsFunctionStack(@NotNull final AbstractApp app,
9596
.partitionKey(Attribute.builder().name("id").type(AttributeType.STRING).build())
9697
.timeToLiveAttribute("creationTime")
9798
.tableName(KebabCaseString.of("secrets"))
99+
.removalPolicy(RemovalPolicy.RETAIN_ON_UPDATE_OR_DELETE)
98100
.build();
99101

100102
final software.amazon.awscdk.services.dynamodb.TableV2 tableV2 = new TableV2(this, SafeString.of("Table"), tableProps).getTable();

spring-native-aws-service/pom.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@
4343

4444
<properties>
4545
<spring-cloud.version>2023.0.0</spring-cloud.version>
46-
<repackage.classifier />
46+
<repackage.classifier/>
47+
<maven.compiler.source>21</maven.compiler.source>
48+
<maven.compiler.target>21</maven.compiler.target>
4749
</properties>
4850

4951
<dependencyManagement>
@@ -166,7 +168,6 @@
166168
<plugin>
167169
<groupId>org.graalvm.buildtools</groupId>
168170
<artifactId>native-maven-plugin</artifactId>
169-
<version>0.10.1</version>
170171
<configuration>
171172
<mainClass>com.coffeebeans.springnativeawslambda.Application</mainClass>
172173
<buildArgs combine.children="append">

spring-native-aws-service/src/main/java/com/coffeebeans/springnativeawslambda/ReflectionRuntimeHints.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,34 +18,24 @@
1818

1919
package com.coffeebeans.springnativeawslambda;
2020

21-
import com.coffeebeans.springnativeawslambda.entity.Secret;
22-
import com.coffeebeans.springnativeawslambda.repository.SecretRepository;
23-
import io.awspring.cloud.dynamodb.DynamoDbTemplate;
2421
import java.util.List;
2522
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
2623
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
27-
import com.coffeebeans.springnativeawslambda.model.Request;
28-
import com.coffeebeans.springnativeawslambda.model.Response;
29-
import java.util.Map;
24+
import com.coffeebeans.springnativeawslambda.model.Secret;
3025
import org.joda.time.DateTime;
3126
import org.springframework.aot.hint.MemberCategory;
3227
import org.springframework.aot.hint.RuntimeHints;
3328
import org.springframework.aot.hint.RuntimeHintsRegistrar;
3429
import org.springframework.aot.hint.TypeReference;
3530
import org.springframework.lang.Nullable;
36-
import software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider;
37-
import software.amazon.awssdk.enhanced.dynamodb.TableSchema;
38-
import software.amazon.awssdk.enhanced.dynamodb.internal.mapper.BeanTableSchemaAttributeTags;
39-
import software.amazon.awssdk.enhanced.dynamodb.mapper.BeanTableSchema;
4031

4132
public class ReflectionRuntimeHints implements RuntimeHintsRegistrar {
4233

4334
@Override
4435
public void registerHints(final RuntimeHints hints, @Nullable final ClassLoader classLoader) {
4536
final List<TypeReference> typeReferences = List.of(
4637
TypeReference.of(DateTime.class),
47-
TypeReference.of(Response.class),
48-
TypeReference.of(Request.class),
38+
TypeReference.of(Secret.class),
4939
TypeReference.of(APIGatewayProxyResponseEvent.class),
5040
TypeReference.of(APIGatewayProxyRequestEvent.class),
5141
TypeReference.of(APIGatewayProxyRequestEvent.ProxyRequestContext.class)

spring-native-aws-service/src/main/java/com/coffeebeans/springnativeawslambda/entity/Secret.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,11 @@
66
import lombok.Builder;
77
import lombok.Data;
88
import lombok.NoArgsConstructor;
9-
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean;
10-
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbPartitionKey;
119

1210
@Data
1311
@Builder
1412
@NoArgsConstructor
1513
@AllArgsConstructor
16-
@DynamoDbBean
1714
public class Secret implements Serializable {
1815

1916
private String env;
@@ -24,11 +21,22 @@ public class Secret implements Serializable {
2421

2522
private String partitionKey;
2623

27-
private Map<String, String> variables;
24+
private Map<String, String> items;
2825

29-
@DynamoDbPartitionKey
3026
public String getPartitionKey() {
3127
return env + costCentre + applicationName;
3228
}
3329

30+
public static Secret of(final com.coffeebeans.springnativeawslambda.model.Secret secretModel) {
31+
final String env = secretModel.getEnv();
32+
final String costCentre = secretModel.getCostCentre();
33+
final String applicationName = secretModel.getApplicationName();
34+
return Secret.builder()
35+
.env(env)
36+
.costCentre(costCentre)
37+
.applicationName(applicationName)
38+
.items(secretModel.getItems())
39+
.partitionKey(secretModel.getId())
40+
.build();
41+
}
3442
}

0 commit comments

Comments
 (0)