Skip to content

Commit 0b50028

Browse files
committed
[WIP]
1 parent 49adab8 commit 0b50028

File tree

228 files changed

+9692
-249
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

228 files changed

+9692
-249
lines changed

labs/.idea/modules.xml

Lines changed: 14 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<factorypath>
2+
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/dagger/dagger-compiler/2.25.2/dagger-compiler-2.25.2.jar" enabled="true" runInBatchMode="false"/>
3+
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/dagger/dagger/2.25.2/dagger-2.25.2.jar" enabled="true" runInBatchMode="false"/>
4+
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/dagger/dagger-producers/2.25.2/dagger-producers-2.25.2.jar" enabled="true" runInBatchMode="false"/>
5+
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/dagger/dagger-spi/2.25.2/dagger-spi-2.25.2.jar" enabled="true" runInBatchMode="false"/>
6+
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/googlejavaformat/google-java-format/1.5/google-java-format-1.5.jar" enabled="true" runInBatchMode="false"/>
7+
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/javac-shaded/9-dev-r4023-3/javac-shaded-9-dev-r4023-3.jar" enabled="true" runInBatchMode="false"/>
8+
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
9+
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/27.1-jre/guava-27.1-jre.jar" enabled="true" runInBatchMode="false"/>
10+
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
11+
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" enabled="true" runInBatchMode="false"/>
12+
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.5.2/checker-qual-2.5.2.jar" enabled="true" runInBatchMode="false"/>
13+
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.2.0/error_prone_annotations-2.2.0.jar" enabled="true" runInBatchMode="false"/>
14+
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar" enabled="true" runInBatchMode="false"/>
15+
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar" enabled="true" runInBatchMode="false"/>
16+
<factorypathentry kind="VARJAR" id="M2_REPO/com/squareup/javapoet/1.11.1/javapoet-1.11.1.jar" enabled="true" runInBatchMode="false"/>
17+
<factorypathentry kind="VARJAR" id="M2_REPO/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar" enabled="true" runInBatchMode="false"/>
18+
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
19+
<factorypathentry kind="VARJAR" id="M2_REPO/net/ltgt/gradle/incap/incap/0.2/incap-0.2.jar" enabled="true" runInBatchMode="false"/>
20+
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-compat-qual/2.5.3/checker-compat-qual-2.5.3.jar" enabled="true" runInBatchMode="false"/>
21+
<factorypathentry kind="VARJAR" id="M2_REPO/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.jar" enabled="true" runInBatchMode="false"/>
22+
<factorypathentry kind="VARJAR" id="M2_REPO/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.jar" enabled="true" runInBatchMode="false"/>
23+
<factorypathentry kind="VARJAR" id="M2_REPO/org/jetbrains/annotations/13.0/annotations-13.0.jar" enabled="true" runInBatchMode="false"/>
24+
<factorypathentry kind="VARJAR" id="M2_REPO/org/jetbrains/kotlinx/kotlinx-metadata-jvm/0.1.0/kotlinx-metadata-jvm-0.1.0.jar" enabled="true" runInBatchMode="false"/>
25+
</factorypath>
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
4+
<output url="file://$MODULE_DIR$/target/classes" />
5+
<output-test url="file://$MODULE_DIR$/target/test-classes" />
6+
<content url="file://$MODULE_DIR$">
7+
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
8+
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
9+
<sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" />
10+
<excludeFolder url="file://$MODULE_DIR$/target" />
11+
</content>
12+
<orderEntry type="inheritedJdk" />
13+
<orderEntry type="sourceFolder" forTests="false" />
14+
<orderEntry type="library" name="Maven: com.google.dagger:dagger:2.25.2" level="project" />
15+
<orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
16+
<orderEntry type="library" name="Maven: com.amazonaws:aws-java-sdk-dynamodb:1.11.683" level="project" />
17+
<orderEntry type="library" name="Maven: com.amazonaws:aws-java-sdk-core:1.11.683" level="project" />
18+
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.3" level="project" />
19+
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.9" level="project" />
20+
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.11" level="project" />
21+
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.11" level="project" />
22+
<orderEntry type="library" name="Maven: software.amazon.ion:ion-java:1.0.2" level="project" />
23+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.6.7.3" level="project" />
24+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.6.0" level="project" />
25+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.6.7" level="project" />
26+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.6.7" level="project" />
27+
<orderEntry type="library" name="Maven: com.amazonaws:jmespath-java:1.11.683" level="project" />
28+
<orderEntry type="library" name="Maven: com.amazonaws:aws-java-sdk-s3:1.11.683" level="project" />
29+
<orderEntry type="library" name="Maven: com.amazonaws:aws-java-sdk-kms:1.11.683" level="project" />
30+
<orderEntry type="library" name="Maven: com.amazonaws:aws-lambda-java-core:1.2.0" level="project" />
31+
<orderEntry type="library" name="Maven: com.amazonaws:aws-lambda-java-events:2.2.7" level="project" />
32+
<orderEntry type="library" name="Maven: joda-time:joda-time:2.6" level="project" />
33+
<orderEntry type="library" name="Maven: org.slf4j:slf4j-simple:1.7.28" level="project" />
34+
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.28" level="project" />
35+
<orderEntry type="library" name="Maven: com.amazonaws:aws-xray-recorder-sdk-core:2.3.0" level="project" />
36+
<orderEntry type="library" name="Maven: com.amazonaws:aws-java-sdk-xray:1.11.398" level="project" />
37+
<orderEntry type="library" name="Maven: com.amazonaws:aws-xray-recorder-sdk-aws-sdk:2.3.0" level="project" />
38+
<orderEntry type="library" name="Maven: com.amazonaws:aws-xray-recorder-sdk-aws-sdk-core:2.3.0" level="project" />
39+
</component>
40+
</module>
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xmlns="http://maven.apache.org/POM/4.0.0"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<parent>
8+
<groupId>com.aws.samples.java.lambda.labs</groupId>
9+
<artifactId>lab-1-replatform</artifactId>
10+
<version>1.0.0-SNAPSHOT</version>
11+
</parent>
12+
13+
<groupId>com.aws.samples.java.lambda.labs.lab-1-replatform</groupId>
14+
<artifactId>dagger2-lambda</artifactId>
15+
<packaging>jar</packaging>
16+
17+
<dependencies>
18+
<dependency>
19+
<groupId>com.google.dagger</groupId>
20+
<artifactId>dagger</artifactId>
21+
<version>2.25.2</version>
22+
</dependency>
23+
24+
<dependency>
25+
<groupId>com.amazonaws</groupId>
26+
<artifactId>aws-java-sdk-dynamodb</artifactId>
27+
<version>${aws.java.sdkv1.version}</version>
28+
</dependency>
29+
30+
<dependency>
31+
<groupId>com.amazonaws</groupId>
32+
<artifactId>aws-java-sdk-s3</artifactId>
33+
<version>${aws.java.sdkv1.version}</version>
34+
</dependency>
35+
36+
<dependency>
37+
<groupId>com.amazonaws</groupId>
38+
<artifactId>aws-lambda-java-core</artifactId>
39+
<version>${com.amazonaws.aws-lambda-java-core.version}</version>
40+
</dependency>
41+
42+
<dependency>
43+
<groupId>com.amazonaws</groupId>
44+
<artifactId>aws-lambda-java-events</artifactId>
45+
<version>${com.amazonaws.aws-lambda-java-events.version}</version>
46+
</dependency>
47+
48+
<dependency>
49+
<groupId>org.slf4j</groupId>
50+
<artifactId>slf4j-simple</artifactId>
51+
<version>${org.slf4j.version}</version>
52+
</dependency>
53+
54+
<dependency>
55+
<groupId>com.amazonaws</groupId>
56+
<artifactId>aws-xray-recorder-sdk-core</artifactId>
57+
<version>${com.amazonaws.aws-xray-recorder-sdk.version}</version>
58+
</dependency>
59+
60+
<dependency>
61+
<groupId>com.amazonaws</groupId>
62+
<artifactId>aws-xray-recorder-sdk-aws-sdk</artifactId>
63+
<version>${com.amazonaws.aws-xray-recorder-sdk.version}</version>
64+
</dependency>
65+
</dependencies>
66+
67+
<build>
68+
<finalName>${project.artifactId}</finalName>
69+
70+
<plugins>
71+
<plugin>
72+
<groupId>org.apache.maven.plugins</groupId>
73+
<artifactId>maven-compiler-plugin</artifactId>
74+
<version>3.8.1</version>
75+
<configuration>
76+
<annotationProcessorPaths>
77+
<path>
78+
<groupId>com.google.dagger</groupId>
79+
<artifactId>dagger-compiler</artifactId>
80+
<version>2.25.2</version>
81+
</path>
82+
</annotationProcessorPaths>
83+
<source>8</source>
84+
<target>8</target>
85+
</configuration>
86+
</plugin>
87+
88+
<plugin>
89+
<artifactId>maven-assembly-plugin</artifactId>
90+
<version>3.1.0</version>
91+
<configuration>
92+
<finalName>app</finalName>
93+
<appendAssemblyId>false</appendAssemblyId>
94+
<descriptorRefs>
95+
<descriptorRef>jar-with-dependencies</descriptorRef>
96+
</descriptorRefs>
97+
</configuration>
98+
<executions>
99+
<execution>
100+
<id>make-assembly</id>
101+
<phase>package</phase>
102+
<goals>
103+
<goal>single</goal>
104+
</goals>
105+
</execution>
106+
</executions>
107+
</plugin>
108+
</plugins>
109+
</build>
110+
</project>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package com.aws.samples.petclinic;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.RequestHandler;
5+
import com.amazonaws.services.lambda.runtime.events.APIGatewayV2ProxyRequestEvent;
6+
import com.amazonaws.services.lambda.runtime.events.APIGatewayV2ProxyResponseEvent;
7+
import com.amazonaws.xray.AWSXRay;
8+
import com.amazonaws.xray.entities.Subsegment;
9+
import com.aws.samples.petclinic.dagger.DaggerPetComponent;
10+
import com.aws.samples.petclinic.dagger.PetComponent;
11+
import com.aws.samples.petclinic.pet.Pet;
12+
import com.aws.samples.petclinic.pet.PetRecord;
13+
import com.aws.samples.petclinic.pet.PetService;
14+
import com.fasterxml.jackson.databind.ObjectMapper;
15+
16+
import javax.inject.Inject;
17+
import javax.inject.Named;
18+
19+
@Named("CreatePet")
20+
public class CreatePetLambdaHandler implements RequestHandler<APIGatewayV2ProxyRequestEvent, APIGatewayV2ProxyResponseEvent> {
21+
22+
@Inject
23+
PetService service;
24+
25+
@Inject
26+
ObjectMapper objectMapper;
27+
28+
private PetComponent component;
29+
30+
public CreatePetLambdaHandler() {
31+
component = DaggerPetComponent.builder().build();
32+
component.inject(this);
33+
}
34+
35+
@Override
36+
public APIGatewayV2ProxyResponseEvent handleRequest(APIGatewayV2ProxyRequestEvent input, Context context) {
37+
Subsegment injectorSegment = AWSXRay.beginSubsegment("handleRequest");
38+
39+
APIGatewayV2ProxyResponseEvent response = new APIGatewayV2ProxyResponseEvent();
40+
response.setStatusCode(200);
41+
42+
try {
43+
PetRecord petRecord = objectMapper.readValue(input.getBody(), PetRecord.class);
44+
petRecord = service.addPet(petRecord);
45+
response.setBody(objectMapper.writeValueAsString(petRecord));
46+
} catch (Exception e) {
47+
response.setStatusCode(500);
48+
e.printStackTrace();
49+
injectorSegment.addException(e);
50+
} finally {
51+
AWSXRay.endSubsegment();
52+
}
53+
54+
return response;
55+
}
56+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.aws.samples.petclinic;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.events.APIGatewayV2ProxyRequestEvent;
5+
import com.amazonaws.services.lambda.runtime.events.APIGatewayV2ProxyResponseEvent;
6+
7+
public class Main {
8+
9+
/*
10+
only for test purpose
11+
*/
12+
public static void main(String[] args) {
13+
CreatePetLambdaHandler handler = new CreatePetLambdaHandler();
14+
15+
APIGatewayV2ProxyRequestEvent request = new APIGatewayV2ProxyRequestEvent();
16+
request.setBody("{\"name\": \"Max\", \"type\": \"dog\", \"birthday\": \"2010-11-03\", \"medicalRecord\": \"bla bla bla\"}");
17+
Context context = null;
18+
19+
APIGatewayV2ProxyResponseEvent response = handler.handleRequest(request, context);
20+
}
21+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.aws.samples.petclinic.dagger;
2+
3+
import com.aws.samples.petclinic.CreatePetLambdaHandler;
4+
import com.aws.samples.petclinic.pet.MedicalRecordStore;
5+
import com.aws.samples.petclinic.pet.PetRepository;
6+
import com.aws.samples.petclinic.pet.PetService;
7+
import dagger.Component;
8+
9+
import javax.inject.Singleton;
10+
11+
@Singleton
12+
@Component(modules = PetModule.class)
13+
public interface PetComponent {
14+
15+
PetService buildPetService();
16+
17+
PetRepository buildPetRepository();
18+
19+
MedicalRecordStore buildMedicalRecordStore();
20+
21+
void inject(CreatePetLambdaHandler createPetLambdaHandler);
22+
}

0 commit comments

Comments
 (0)