Skip to content

Commit cf2603f

Browse files
Updated Java dependencies and Code (#47)
* Updated unicorn approvals dependencies and updated code. * Updated Unicorn Contracts. * Updated unicorn web.
1 parent 96c27cd commit cf2603f

File tree

28 files changed

+1183
-823
lines changed

28 files changed

+1183
-823
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ unicorn_approvals/ApprovalsService/target/**
22
unicorn_contracts/ContractsService/target/**
33
unicorn_web/ApprovalService/target/**
44
unicorn_web/SearchService/target/**
5+
unicorn_web/PublicationManagerService/target/**
56
unicorn_web/Common/target/**
67
**/.aws-sam/
78
.DS_Store**

unicorn_approvals/ApprovalsService/pom.xml

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
<properties>
1010
<maven.compiler.source>17</maven.compiler.source>
1111
<maven.compiler.target>17</maven.compiler.target>
12-
<aws.java.sdk.version>2.27.21</aws.java.sdk.version>
13-
<aws.java.powertool.version>1.18.0</aws.java.powertool.version>
14-
<aws-lambda-java-events.version>3.13.0</aws-lambda-java-events.version>
15-
<mockito-core.version>5.13.0</mockito-core.version>
12+
<aws.java.sdk.version>2.32.29</aws.java.sdk.version>
13+
<aws.java.powertool.version>1.20.2</aws.java.powertool.version>
14+
<aws-lambda-java-events.version>3.16.1</aws-lambda-java-events.version>
15+
<mockito-core.version>5.18.0</mockito-core.version>
1616
<junit.version>4.13.2</junit.version>
17-
<aws-lambda-java-tests.version>1.1.1</aws-lambda-java-tests.version>
18-
<aws-lambda-java-core.version>1.2.3</aws-lambda-java-core.version>
19-
<netty-nio-client.version>2.27.21</netty-nio-client.version>
17+
<aws-lambda-java-tests.version>1.1.2</aws-lambda-java-tests.version>
18+
<aws-lambda-java-core.version>1.3.0</aws-lambda-java-core.version>
19+
<netty-nio-client.version>2.32.29</netty-nio-client.version>
2020
</properties>
2121

2222
<dependencies>
@@ -81,29 +81,29 @@
8181
<dependency>
8282
<groupId>com.fasterxml.jackson.core</groupId>
8383
<artifactId>jackson-databind</artifactId>
84-
<version>2.15.2</version>
84+
<version>2.18.4</version>
8585
</dependency>
8686
<dependency>
8787
<groupId>com.fasterxml.jackson.core</groupId>
8888
<artifactId>jackson-core</artifactId>
89-
<version>2.15.2</version>
89+
<version>2.18.4</version>
9090
</dependency>
9191
<dependency>
9292
<groupId>com.fasterxml.jackson.core</groupId>
9393
<artifactId>jackson-annotations</artifactId>
94-
<version>2.15.2</version>
94+
<version>2.18.4</version>
9595
</dependency>
9696

9797
<!-- Log4j -->
9898
<dependency>
9999
<groupId>org.apache.logging.log4j</groupId>
100100
<artifactId>log4j-api</artifactId>
101-
<version>2.20.0</version>
101+
<version>2.25.1</version>
102102
</dependency>
103103
<dependency>
104104
<groupId>org.apache.logging.log4j</groupId>
105105
<artifactId>log4j-core</artifactId>
106-
<version>2.20.0</version>
106+
<version>2.25.1</version>
107107
</dependency>
108108
<dependency>
109109
<groupId>org.mockito</groupId>
@@ -132,7 +132,7 @@
132132
<plugin>
133133
<groupId>org.apache.maven.plugins</groupId>
134134
<artifactId>maven-surefire-plugin</artifactId>
135-
<version>2.22.2</version>
135+
<version>3.5.3</version>
136136
<configuration>
137137
<environmentVariables>
138138
<LAMBDA_TASK_ROOT>handler</LAMBDA_TASK_ROOT>
@@ -142,7 +142,7 @@
142142
<plugin>
143143
<groupId>org.apache.maven.plugins</groupId>
144144
<artifactId>maven-shade-plugin</artifactId>
145-
<version>3.2.4</version>
145+
<version>3.6.0</version>
146146
<configuration>
147147
</configuration>
148148
<executions>
@@ -157,11 +157,10 @@
157157
<plugin>
158158
<groupId>dev.aspectj</groupId>
159159
<artifactId>aspectj-maven-plugin</artifactId>
160-
<version>1.13.1</version>
160+
<version>1.14.1</version>
161161
<configuration>
162-
<source>17</source>
163-
<target>17</target>
164162
<complianceLevel>17</complianceLevel>
163+
<release>17</release>
165164
<aspectLibraries>
166165
<aspectLibrary>
167166
<groupId>software.amazon.lambda</groupId>
@@ -184,11 +183,18 @@
184183
</goals>
185184
</execution>
186185
</executions>
186+
<dependencies>
187+
<dependency>
188+
<groupId>org.aspectj</groupId>
189+
<artifactId>aspectjtools</artifactId>
190+
<version>1.9.24</version>
191+
</dependency>
192+
</dependencies>
187193
</plugin>
188194
<plugin>
189195
<groupId>org.apache.maven.plugins</groupId>
190196
<artifactId>maven-compiler-plugin</artifactId>
191-
<version>3.11.0</version>
197+
<version>3.14.0</version>
192198
<configuration>
193199
<source>17</source>
194200
<target>17</target>

unicorn_approvals/ApprovalsService/src/main/java/approvals/ContractStatusChangedHandlerFunction.java

Lines changed: 55 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -27,70 +27,60 @@
2727
*/
2828
public class ContractStatusChangedHandlerFunction {
2929

30-
Logger logger = LogManager.getLogger();
31-
32-
final String TABLE_NAME = System.getenv("CONTRACT_STATUS_TABLE");
33-
34-
ObjectMapper objectMapper = new ObjectMapper();
35-
36-
DynamoDbClient dynamodbClient = DynamoDbClient.builder()
37-
.build();
38-
39-
/**
40-
*
41-
* @param inputStream
42-
* @param outputStream
43-
* @param context
44-
* @return
45-
* @throws IOException
46-
*
47-
*/
48-
@Tracing
49-
@Metrics(captureColdStart = true)
50-
@Logging(logEvent = true)
51-
public void handleRequest(InputStream inputStream, OutputStream outputStream,
52-
Context context) throws IOException {
53-
54-
// deseralised and save contract status change in dynamodb table
55-
56-
Event event = Marshaller.unmarshal(inputStream,
57-
Event.class);
58-
// save to database
59-
ContractStatusChanged contractStatusChanged = event.getDetail();
60-
saveContractStatus(contractStatusChanged.getPropertyId(), contractStatusChanged.getContractStatus(),
61-
contractStatusChanged.getContractId(),
62-
contractStatusChanged.getContractLastModifiedOn());
63-
64-
OutputStreamWriter writer = new OutputStreamWriter(outputStream, StandardCharsets.UTF_8);
65-
writer.write(objectMapper.writeValueAsString(event.getDetail()));
66-
writer.close();
67-
}
68-
69-
@Tracing
70-
void saveContractStatus(String propertyId,
71-
String contractStatus, String contractId, Long contractLastModifiedOn) {
72-
Map<String, AttributeValue> key = new HashMap<String, AttributeValue>();
73-
AttributeValue keyvalue = AttributeValue.fromS(propertyId);
74-
key.put("property_id", keyvalue);
75-
76-
Map<String, AttributeValue> expressionAttributeValues = new HashMap<String, AttributeValue>();
77-
expressionAttributeValues.put(":t", AttributeValue.fromS(contractStatus));
78-
expressionAttributeValues.put(":c", AttributeValue.fromS(contractId));
79-
expressionAttributeValues.put(":m", AttributeValue
80-
.fromN(String.valueOf(contractLastModifiedOn)));
81-
82-
UpdateItemRequest updateItemRequest = UpdateItemRequest.builder()
83-
.key(key)
84-
.tableName(TABLE_NAME)
85-
.updateExpression(
86-
"set contract_status=:t, contract_last_modified_on=:m, contract_id=:c")
87-
.expressionAttributeValues(expressionAttributeValues)
88-
.build();
89-
90-
dynamodbClient.updateItem(updateItemRequest);
91-
}
92-
93-
public void setDynamodbClient(DynamoDbClient dynamodbClient) {
94-
this.dynamodbClient = dynamodbClient;
30+
private static final Logger logger = LogManager.getLogger();
31+
private static final String TABLE_NAME = System.getenv("CONTRACT_STATUS_TABLE");
32+
private static final ObjectMapper objectMapper = new ObjectMapper();
33+
34+
private DynamoDbClient dynamodbClient = DynamoDbClient.builder().build();
35+
36+
/**
37+
* Handles contract status change events from EventBridge
38+
*
39+
* @param inputStream the input stream containing the event
40+
* @param outputStream the output stream for the response
41+
* @param context the Lambda context
42+
* @throws IOException if there's an error processing the event
43+
*/
44+
@Tracing
45+
@Metrics(captureColdStart = true)
46+
@Logging(logEvent = true)
47+
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
48+
Event event = Marshaller.unmarshal(inputStream, Event.class);
49+
ContractStatusChanged contractStatusChanged = event.getDetail();
50+
51+
saveContractStatus(
52+
contractStatusChanged.getPropertyId(),
53+
contractStatusChanged.getContractStatus(),
54+
contractStatusChanged.getContractId(),
55+
contractStatusChanged.getContractLastModifiedOn()
56+
);
57+
58+
try (OutputStreamWriter writer = new OutputStreamWriter(outputStream, StandardCharsets.UTF_8)) {
59+
writer.write(objectMapper.writeValueAsString(event.getDetail()));
9560
}
61+
}
62+
63+
@Tracing
64+
void saveContractStatus(String propertyId, String contractStatus, String contractId, Long contractLastModifiedOn) {
65+
Map<String, AttributeValue> key = Map.of("property_id", AttributeValue.fromS(propertyId));
66+
67+
Map<String, AttributeValue> expressionAttributeValues = Map.of(
68+
":t", AttributeValue.fromS(contractStatus),
69+
":c", AttributeValue.fromS(contractId),
70+
":m", AttributeValue.fromN(String.valueOf(contractLastModifiedOn))
71+
);
72+
73+
UpdateItemRequest updateItemRequest = UpdateItemRequest.builder()
74+
.key(key)
75+
.tableName(TABLE_NAME)
76+
.updateExpression("set contract_status=:t, contract_last_modified_on=:m, contract_id=:c")
77+
.expressionAttributeValues(expressionAttributeValues)
78+
.build();
79+
80+
dynamodbClient.updateItem(updateItemRequest);
81+
}
82+
83+
public void setDynamodbClient(DynamoDbClient dynamodbClient) {
84+
this.dynamodbClient = dynamodbClient;
85+
}
9686
}

0 commit comments

Comments
 (0)