diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml
index f0aa3b38b..97e0dac98 100644
--- a/.github/workflows/documentation.yml
+++ b/.github/workflows/documentation.yml
@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0
+ - uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
with:
distribution: 'temurin'
java-version: '21'
diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml
index de6b248ec..dab79cd07 100644
--- a/.github/workflows/integration-tests.yml
+++ b/.github/workflows/integration-tests.yml
@@ -14,12 +14,12 @@ jobs:
contents: read
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0
+ - uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
with:
distribution: 'temurin'
java-version: '21'
cache: 'maven'
- - uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
+ - uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
name: Configure AWS credentials from Test account
with:
role-to-assume: ${{ vars.AWS_ROLE }}
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 69250a14c..da48a5cf6 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -14,7 +14,7 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Set up JDK 21
- uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0
+ uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
with:
distribution: 'temurin'
java-version: 21
diff --git a/pom.xml b/pom.xml
index cf555451e..f1255a543 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,43 +37,48 @@
- 2.31.7
- 3.37.0
- 1.12.0
+ 2.31.9
+ 3.40.0
+ 1.14.0
2.18.0
- 4.0.11
- 1.1.13
+ 4.0.12
+ 1.1.14
2.2.1
- 26.52.0
+ 26.57.0
1.69.0
- 2.11.0
+ 2.12.1
4.4.16
4.5.14
- 2.18.2
+ 2.18.3
2.3.0
3.0.2
- 1.9.25
- 6.5.1.RELEASE
- 8.13.52
+ 2.1.20
+
+ 1.5.13
+ 2.0.5
+ 6.5.5.RELEASE
+ 9.0.2
7.3
2.24.3
3.5.0
- 1.14.2
- 4.1.116.Final
- 3.25.5
+ 1.14.5
+ 4.1.119.Final
+
+ 3.25.5
0.15.4
1.2.4
- 2024.0.1
- 2.2.0
+ 2024.0.4
+ 2.3.0
3.1.0
- 2.0.16
+ 2.0.17
23.10.0
2.2.27
-
- 5f8358c9d5615c18e95728e8b8528bda7ff40a7a5da2ac9a35b7a01f5d9b231a
+
+ 02fc89fa8766a9ba221e69225f8d1c10bb91885ddbd3c112448e23488ba40ab6
UTF-8
@@ -121,7 +126,7 @@
com.google.cloud
- libraries-bom
+ libraries-bom-protobuf3
${google-cloud-libraries.version}
pom
import
@@ -223,12 +228,12 @@
commons-logging
commons-logging
- 1.2
+ 1.3.5
org.ow2.asm
asm
- 9.5
+ 9.7.1
test
@@ -260,7 +265,7 @@
org.signal
libsignal-server
- 0.60.0
+ 0.67.6
org.signal.forks
@@ -290,6 +295,21 @@
${dynamodblocal.version}
test
+
+ ch.qos.logback
+ logback-core
+ ${logback.version}
+
+
+ ch.qos.logback
+ logback-classic
+ ${logback.version}
+
+
+ ch.qos.logback.access
+ logback-access-common
+ ${logback-access.version}
+
@@ -307,7 +327,7 @@
org.wiremock
wiremock
- 3.9.1
+ 3.12.1
test
diff --git a/service/pom.xml b/service/pom.xml
index 734818562..1e9bbf132 100644
--- a/service/pom.xml
+++ b/service/pom.xml
@@ -11,14 +11,20 @@
service
- 9.4.2
+ 9.4.3
5.1.0
- v3-rev20250102-2.0.0
- 3.2.0
- 0.28.4.RELEASE
+ v3-rev20250318-2.0.0
+ 3.4.0
+ 0.28.6.RELEASE
+ 4.5.0
+
+ com.auth0
+ java-jwt
+ ${java-jwt.version}
+
com.google.apis
google-api-services-androidpublisher
@@ -137,8 +143,8 @@
logback-core
- ch.qos.logback
- logback-access
+ ch.qos.logback.access
+ logback-access-common
ch.qos.logback
@@ -233,21 +239,26 @@
google-cloud-pubsub
+
com.google.firebase
firebase-admin
${firebase-admin.version}
+
+
+ io.opentelemetry.semconv
+ opentelemetry-semconv
+
+
io.opentelemetry.semconv
opentelemetry-semconv
- 1.27.0-alpha
+ 1.30.0
-
com.google.cloud
google-cloud-firestore
- 3.30.2
io.opentelemetry.semconv
@@ -400,7 +411,7 @@
com.googlecode.libphonenumber
geocoder
- 2.246
+ 3.2
diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/CircuitBreakerConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/CircuitBreakerConfiguration.java
index b593321bd..af2a31606 100644
--- a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/CircuitBreakerConfiguration.java
+++ b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/CircuitBreakerConfiguration.java
@@ -116,7 +116,8 @@ public class CircuitBreakerConfiguration {
.permittedNumberOfCallsInHalfOpenState(getPermittedNumberOfCallsInHalfOpenState())
.waitDurationInOpenState(getWaitDurationInOpenState())
.slidingWindow(getSlidingWindowSize(), getSlidingWindowMinimumNumberOfCalls(),
- CircuitBreakerConfig.SlidingWindowType.COUNT_BASED)
+ CircuitBreakerConfig.SlidingWindowType.COUNT_BASED,
+ CircuitBreakerConfig.SlidingWindowSynchronizationStrategy.SYNCHRONIZED)
.build();
}
}
diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/util/logging/RequestLogEnabledFilterFactory.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/logging/RequestLogEnabledFilterFactory.java
index 6371d9ec4..612592463 100644
--- a/service/src/main/java/org/whispersystems/textsecuregcm/util/logging/RequestLogEnabledFilterFactory.java
+++ b/service/src/main/java/org/whispersystems/textsecuregcm/util/logging/RequestLogEnabledFilterFactory.java
@@ -5,7 +5,7 @@
package org.whispersystems.textsecuregcm.util.logging;
-import ch.qos.logback.access.spi.IAccessEvent;
+import ch.qos.logback.access.common.spi.IAccessEvent;
import ch.qos.logback.core.filter.Filter;
import com.fasterxml.jackson.annotation.JsonTypeName;
import io.dropwizard.logging.common.filter.FilterFactory;
diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/util/logging/RequestLogManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/logging/RequestLogManager.java
index 1fc38fa49..b82fbe21f 100644
--- a/service/src/main/java/org/whispersystems/textsecuregcm/util/logging/RequestLogManager.java
+++ b/service/src/main/java/org/whispersystems/textsecuregcm/util/logging/RequestLogManager.java
@@ -5,7 +5,7 @@
package org.whispersystems.textsecuregcm.util.logging;
-import ch.qos.logback.access.spi.IAccessEvent;
+import ch.qos.logback.access.common.spi.IAccessEvent;
import ch.qos.logback.core.filter.Filter;
public class RequestLogManager {
diff --git a/websocket-resources/src/main/java/org/whispersystems/websocket/logging/layout/WebsocketEventLayout.java b/websocket-resources/src/main/java/org/whispersystems/websocket/logging/layout/WebsocketEventLayout.java
index d42916b98..7c807ae46 100644
--- a/websocket-resources/src/main/java/org/whispersystems/websocket/logging/layout/WebsocketEventLayout.java
+++ b/websocket-resources/src/main/java/org/whispersystems/websocket/logging/layout/WebsocketEventLayout.java
@@ -5,6 +5,7 @@
package org.whispersystems.websocket.logging.layout;
import ch.qos.logback.core.Context;
+import ch.qos.logback.core.pattern.DynamicConverter;
import ch.qos.logback.core.pattern.PatternLayoutBase;
import org.whispersystems.websocket.logging.WebsocketEvent;
import org.whispersystems.websocket.logging.layout.converters.ContentLengthConverter;
@@ -18,9 +19,25 @@ import org.whispersystems.websocket.logging.layout.converters.StatusCodeConverte
import java.util.HashMap;
import java.util.Map;
+import java.util.function.Supplier;
public class WebsocketEventLayout extends PatternLayoutBase {
+ // Provides a mapping of conversion words to converter classes;
+ // required for extending PatternLayoutBase.
+ // See https://logback.qos.ch/manual/layouts.html#ClassicPatternLayout for more details.
+ private static final Map> DEFAULT_CONVERTER_SUPPLIERS = Map.of(
+ "h", RemoteHostConverter::new,
+ "l", NAConverter::new,
+ "u", NAConverter::new,
+ "t", DateConverter::new,
+ "r", RequestUrlConverter::new,
+ "s", StatusCodeConverter::new,
+ "b", ContentLengthConverter::new,
+ "i", RequestHeaderConverter::new
+ );
+
+ // Provided for backwards compatibility
private static final Map DEFAULT_CONVERTERS = new HashMap<>() {{
put("h", RemoteHostConverter.class.getName());
put("l", NAConverter.class.getName());
@@ -47,6 +64,11 @@ public class WebsocketEventLayout extends PatternLayoutBase {
this.postCompileProcessor = new EnsureLineSeparation();
}
+ @Override
+ protected Map> getDefaultConverterSupplierMap() {
+ return DEFAULT_CONVERTER_SUPPLIERS;
+ }
+
@Override
public Map getDefaultConverterMap() {
return DEFAULT_CONVERTERS;