Skip to content

Commit bbda3f2

Browse files
committed
update SqsParsedMessage to java record instead of data class
1 parent 4490372 commit bbda3f2

File tree

8 files changed

+44
-82
lines changed

8 files changed

+44
-82
lines changed

src/main/java/com/uid2/optout/sqs/SqsBatchProcessor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public BatchProcessingResult processBatch(List<Message> messageBatch, int batchN
115115
* @return true if the message is at least deltaWindowSeconds old
116116
*/
117117
private boolean isMessageEligible(SqsParsedMessage message, long currentTime) {
118-
return currentTime - message.getTimestamp() >= this.deltaWindowSeconds;
118+
return currentTime - message.timestamp() >= this.deltaWindowSeconds;
119119
}
120120

121121
/**
@@ -140,7 +140,7 @@ List<SqsParsedMessage> filterEligibleMessages(List<SqsParsedMessage> messages, l
140140
*/
141141
private List<Message> identifyInvalidMessages(List<Message> originalBatch, List<SqsParsedMessage> parsedBatch) {
142142
Set<String> validIds = parsedBatch.stream()
143-
.map(p -> p.getOriginalMessage().messageId())
143+
.map(p -> p.originalMessage().messageId())
144144
.collect(Collectors.toSet());
145145

146146
return originalBatch.stream()

src/main/java/com/uid2/optout/sqs/SqsMessageParser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ public static List<SqsParsedMessage> parseAndSortMessages(List<Message> messages
5858
}
5959
}
6060

61-
// Sort by timestamp
62-
parsedMessages.sort((a, b) -> Long.compare(a.getTimestamp(), b.getTimestamp()));
61+
// sort by timestamp
62+
parsedMessages.sort((a, b) -> Long.compare(a.timestamp(), b.timestamp()));
6363

6464
return parsedMessages;
6565
}

src/main/java/com/uid2/optout/sqs/SqsParsedMessage.java

Lines changed: 10 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -5,57 +5,13 @@
55
/**
66
* Represents a parsed SQS message containing opt-out data.
77
*/
8-
public class SqsParsedMessage {
9-
private final Message originalMessage;
10-
private final byte[] hashBytes;
11-
private final byte[] idBytes;
12-
private final long timestamp;
13-
private final String email;
14-
private final String phone;
15-
private final String clientIp;
16-
private final String traceId;
17-
18-
public SqsParsedMessage(Message originalMessage, byte[] hashBytes, byte[] idBytes, long timestamp, String email, String phone, String clientIp, String traceId) {
19-
this.originalMessage = originalMessage;
20-
this.hashBytes = hashBytes;
21-
this.idBytes = idBytes;
22-
this.timestamp = timestamp;
23-
this.email = email;
24-
this.phone = phone;
25-
this.clientIp = clientIp;
26-
this.traceId = traceId;
27-
}
28-
29-
public Message getOriginalMessage() {
30-
return originalMessage;
31-
}
32-
33-
public byte[] getHashBytes() {
34-
return hashBytes;
35-
}
36-
37-
public byte[] getIdBytes() {
38-
return idBytes;
39-
}
40-
41-
public long getTimestamp() {
42-
return timestamp;
43-
}
44-
45-
public String getEmail() {
46-
return email;
47-
}
48-
49-
public String getPhone() {
50-
return phone;
51-
}
52-
53-
public String getClientIp() {
54-
return clientIp;
55-
}
56-
57-
public String getTraceId() {
58-
return traceId;
59-
}
60-
}
61-
8+
public record SqsParsedMessage(
9+
Message originalMessage,
10+
byte[] hashBytes,
11+
byte[] idBytes,
12+
long timestamp,
13+
String email,
14+
String phone,
15+
String clientIp,
16+
String traceId
17+
) {}

src/main/java/com/uid2/optout/sqs/SqsWindowReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public WindowReadResult readWindow() {
124124
// Add eligible messages to current window
125125
boolean newWindow = false;
126126
for (SqsParsedMessage msg : batchResult.getMessages()) {
127-
long msgWindowStart = msg.getTimestamp();
127+
long msgWindowStart = msg.timestamp();
128128

129129
// Discover start of window
130130
if (currentWindowStart == 0) {

src/main/java/com/uid2/optout/vertx/OptOutSqsLogProducer.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
import com.uid2.optout.Const;
44
import com.uid2.optout.auth.InternalAuthMiddleware;
5+
import com.uid2.optout.sqs.SqsWindowReader;
6+
import com.uid2.optout.sqs.SqsParsedMessage;
7+
import com.uid2.optout.sqs.SqsMessageOperations;
8+
import com.uid2.optout.delta.StopReason;
59
import com.uid2.shared.Utils;
610
import com.uid2.shared.cloud.ICloudStorage;
711
import com.uid2.shared.health.HealthComponent;
@@ -409,8 +413,8 @@ private DeltaProductionResult produceBatchedDeltas() throws IOException {
409413
// Write all messages
410414
List<Message> sqsMessages = new ArrayList<>();
411415
for (SqsParsedMessage msg : messages) {
412-
writeOptOutEntry(deltaStream, msg.getHashBytes(), msg.getIdBytes(), msg.getTimestamp());
413-
sqsMessages.add(msg.getOriginalMessage());
416+
writeOptOutEntry(deltaStream, msg.hashBytes(), msg.idBytes(), msg.timestamp());
417+
sqsMessages.add(msg.originalMessage());
414418
}
415419

416420
// Upload and delete

src/main/java/com/uid2/optout/vertx/OptOutTrafficFilter.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.uid2.optout.vertx;
22

3+
import com.uid2.optout.sqs.SqsParsedMessage;
4+
35
import org.slf4j.Logger;
46
import org.slf4j.LoggerFactory;
57

@@ -151,8 +153,8 @@ List<TrafficFilterRule> parseFilterRules(JsonObject config) throws MalformedTraf
151153
}
152154

153155
public boolean isDenylisted(SqsParsedMessage message) {
154-
long timestamp = message.getTimestamp();
155-
String clientIp = message.getClientIp();
156+
long timestamp = message.timestamp();
157+
String clientIp = message.clientIp();
156158

157159
if (clientIp == null || clientIp.isEmpty()) {
158160
LOGGER.error("Request does not contain client IP, timestamp={}", timestamp);

src/test/java/com/uid2/optout/sqs/SqsBatchProcessorTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,8 @@ public void testFilterEligibleMessages_boundaryCases() {
127127

128128
// Should only include the last two (>= threshold)
129129
assertEquals(2, result.size());
130-
assertEquals(currentTime - windowSeconds, result.get(0).getTimestamp());
131-
assertEquals(currentTime - windowSeconds - 1, result.get(1).getTimestamp());
130+
assertEquals(currentTime - windowSeconds, result.get(0).timestamp());
131+
assertEquals(currentTime - windowSeconds - 1, result.get(1).timestamp());
132132
}
133133

134134
@Test
@@ -148,9 +148,9 @@ public void testFilterEligibleMessages_preservesOrder() {
148148

149149
assertEquals(3, result.size());
150150
// Verify order is preserved
151-
assertEquals(100, result.get(0).getTimestamp());
152-
assertEquals(200, result.get(1).getTimestamp());
153-
assertEquals(300, result.get(2).getTimestamp());
151+
assertEquals(100, result.get(0).timestamp());
152+
assertEquals(200, result.get(1).timestamp());
153+
assertEquals(300, result.get(2).timestamp());
154154
}
155155

156156
@Test

src/test/java/com/uid2/optout/sqs/SqsMessageParserTest.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ public void testParseAndSortMessages_validMessages() {
5858

5959
assertEquals(3, result.size());
6060
// Verify sorting (oldest first)
61-
assertEquals(TEST_TIMESTAMP_SEC, result.get(0).getTimestamp());
62-
assertEquals(TEST_TIMESTAMP_SEC + 1, result.get(1).getTimestamp());
63-
assertEquals(TEST_TIMESTAMP_SEC + 2, result.get(2).getTimestamp());
61+
assertEquals(TEST_TIMESTAMP_SEC, result.get(0).timestamp());
62+
assertEquals(TEST_TIMESTAMP_SEC + 1, result.get(1).timestamp());
63+
assertEquals(TEST_TIMESTAMP_SEC + 2, result.get(2).timestamp());
6464
}
6565

6666
@Test
@@ -159,7 +159,7 @@ public void testParseAndSortMessages_missingTimestamp() {
159159
assertEquals(1, result.size());
160160
// Timestamp should be close to current time (within 10 seconds)
161161
long currentTime = System.currentTimeMillis() / 1000;
162-
assertTrue(Math.abs(result.get(0).getTimestamp() - currentTime) < 10);
162+
assertTrue(Math.abs(result.get(0).timestamp() - currentTime) < 10);
163163
}
164164

165165
@Test
@@ -173,8 +173,8 @@ public void testParseAndSortMessages_mixValidAndInvalid() {
173173
List<SqsParsedMessage> result = SqsMessageParser.parseAndSortMessages(messages);
174174

175175
assertEquals(2, result.size()); // Only valid messages
176-
assertEquals(TEST_TIMESTAMP_SEC, result.get(0).getTimestamp());
177-
assertEquals(TEST_TIMESTAMP_SEC + 1, result.get(1).getTimestamp());
176+
assertEquals(TEST_TIMESTAMP_SEC, result.get(0).timestamp());
177+
assertEquals(TEST_TIMESTAMP_SEC + 1, result.get(1).timestamp());
178178
}
179179

180180
@Test
@@ -185,7 +185,7 @@ public void testParseAndSortMessages_timestampConversion() {
185185
List<SqsParsedMessage> result = SqsMessageParser.parseAndSortMessages(Arrays.asList(message));
186186

187187
assertEquals(1, result.size());
188-
assertEquals(1699308912L, result.get(0).getTimestamp()); // Should be in seconds
188+
assertEquals(1699308912L, result.get(0).timestamp()); // Should be in seconds
189189
}
190190

191191
@Test
@@ -195,7 +195,7 @@ public void testParseAndSortMessages_preservesOriginalMessage() {
195195
List<SqsParsedMessage> result = SqsMessageParser.parseAndSortMessages(Arrays.asList(originalMessage));
196196

197197
assertEquals(1, result.size());
198-
assertSame(originalMessage, result.get(0).getOriginalMessage());
198+
assertSame(originalMessage, result.get(0).originalMessage());
199199
}
200200

201201
@Test
@@ -214,7 +214,7 @@ public void testParseAndSortMessages_sortingOrder() {
214214
assertEquals(5, result.size());
215215
// Verify ascending order
216216
for (int i = 1; i < result.size(); i++) {
217-
assertTrue(result.get(i - 1).getTimestamp() <= result.get(i).getTimestamp(),
217+
assertTrue(result.get(i - 1).timestamp() <= result.get(i).timestamp(),
218218
"Messages should be sorted in ascending order by timestamp");
219219
}
220220
}
@@ -226,10 +226,10 @@ public void testParseAndSortMessages_parsesHashAndIdBytes() {
226226
List<SqsParsedMessage> result = SqsMessageParser.parseAndSortMessages(Arrays.asList(message));
227227

228228
assertEquals(1, result.size());
229-
assertNotNull(result.get(0).getHashBytes());
230-
assertNotNull(result.get(0).getIdBytes());
231-
assertEquals(32, result.get(0).getHashBytes().length);
232-
assertEquals(32, result.get(0).getIdBytes().length);
229+
assertNotNull(result.get(0).hashBytes());
230+
assertNotNull(result.get(0).idBytes());
231+
assertEquals(32, result.get(0).hashBytes().length);
232+
assertEquals(32, result.get(0).idBytes().length);
233233
}
234234

235235
@Test
@@ -265,7 +265,7 @@ public void testParseAndSortMessages_multipleValidMessages() {
265265
assertEquals(100, result.size());
266266
// Verify all are sorted
267267
for (int i = 1; i < result.size(); i++) {
268-
assertTrue(result.get(i - 1).getTimestamp() <= result.get(i).getTimestamp());
268+
assertTrue(result.get(i - 1).timestamp() <= result.get(i).timestamp());
269269
}
270270
}
271271

0 commit comments

Comments
 (0)