diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 74ed2c99..1c090cd6 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -33,6 +33,17 @@ updates:
- dependency-name: "eclipse-temurin"
versions:
- "> 11"
+ - dependency-name: "io.dropwizard:dropwizard-dependencies"
+ # Dropwizard 4.x only works with Jakarta EE and not Java EE
+ versions:
+ - ">= 4"
+ - dependency-name: "org.dhatim:dropwizard-sentry"
+ # We essentially forked Dropwizard Sentry because it did not support
+ # Dropwizard 3.x — there is now a Dropwizard Sentry 4.x, which supports
+ # Dropwizard 4.x (and maybe Dropwizard 3.x), but we’d need to do work
+ # to go back to using an unmodified version
+ versions:
+ - ">= 4"
open-pull-requests-limit: 10
labels:
- dependencies
diff --git a/pom.xml b/pom.xml
index 8ba42371..8ca763c8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,11 +7,8 @@
UTF-8
- 2.1.12
2.2
1.37
- 2.16.1
- 5.10.0
1.0.20240205110547
0.16.0
3.2.5
@@ -23,13 +20,43 @@
-
- io.dropwizard
- dropwizard-dependencies
- 2.1.12
-
+
+
+
+ io.dropwizard
+ dropwizard-dependencies
+ 3.0.6
+ pom
+ import
+
+
+
+
+
+ io.dropwizard
+ dropwizard-core
+
+
+ io.dropwizard
+ dropwizard-json-logging
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+
+
+ com.google.guava
+ guava
+
+
+
io.prometheus
simpleclient
@@ -47,7 +74,7 @@
uk.gov.service.payments
- logging
+ logging-dropwizard-3
${pay-java-commons.version}
@@ -55,38 +82,27 @@
utils
${pay-java-commons.version}
+
+
+
io.dropwizard
- dropwizard-core
- ${dropwizard.version}
-
-
- com.google.guava
- guava
- 33.0.0-jre
-
-
- com.fasterxml.jackson.core
- jackson-databind
- ${jackson.version}
-
-
- com.fasterxml.jackson.core
- jackson-annotations
- ${jackson.version}
+ dropwizard-testing
+ test
- org.dhatim
- dropwizard-sentry
- 2.1.2-4
+ org.mockito
+ mockito-core
+ test
- io.dropwizard
- dropwizard-json-logging
- ${dropwizard.version}
+ org.mockito
+ mockito-junit-jupiter
+ test
-
+
org.hamcrest
hamcrest
@@ -99,18 +115,6 @@
${hamcrest.version}
test
-
- io.dropwizard
- dropwizard-testing
- ${dropwizard.version}
- test
-
-
- org.mockito
- mockito-core
- ${mockito.version}
- test
-
io.rest-assured
rest-assured
@@ -140,16 +144,10 @@
5.10.2
test
-
- org.mockito
- mockito-junit-jupiter
- ${mockito.version}
- test
-
au.com.dius.pact.provider
junit5
- 4.5.6
+ 4.5.8
test
diff --git a/src/main/java/uk/gov/pay/card/app/CardApi.java b/src/main/java/uk/gov/pay/card/app/CardApi.java
index 917210df..52dd33af 100644
--- a/src/main/java/uk/gov/pay/card/app/CardApi.java
+++ b/src/main/java/uk/gov/pay/card/app/CardApi.java
@@ -1,11 +1,11 @@
package uk.gov.pay.card.app;
import com.codahale.metrics.health.HealthCheck;
-import io.dropwizard.Application;
import io.dropwizard.configuration.EnvironmentVariableSubstitutor;
import io.dropwizard.configuration.SubstitutingSourceProvider;
-import io.dropwizard.setup.Bootstrap;
-import io.dropwizard.setup.Environment;
+import io.dropwizard.core.Application;
+import io.dropwizard.core.setup.Bootstrap;
+import io.dropwizard.core.setup.Environment;
import io.prometheus.client.CollectorRegistry;
import io.prometheus.client.dropwizard.DropwizardExports;
import io.prometheus.client.exporter.MetricsServlet;
@@ -21,6 +21,7 @@
import uk.gov.service.payments.logging.GovUkPayDropwizardRequestJsonLogLayoutFactory;
import uk.gov.service.payments.logging.LoggingFilter;
import uk.gov.service.payments.logging.LogstashConsoleAppenderFactory;
+import uk.gov.service.payments.logging.SentryAppenderFactory;
import java.util.List;
@@ -48,6 +49,7 @@ public void initialize(Bootstrap bootstrap) {
);
bootstrap.getObjectMapper().getSubtypeResolver().registerSubtypes(LogstashConsoleAppenderFactory.class);
+ bootstrap.getObjectMapper().getSubtypeResolver().registerSubtypes(SentryAppenderFactory.class);
bootstrap.getObjectMapper().getSubtypeResolver().registerSubtypes(GovUkPayDropwizardRequestJsonLogLayoutFactory.class);
}
diff --git a/src/main/java/uk/gov/pay/card/app/config/CardConfiguration.java b/src/main/java/uk/gov/pay/card/app/config/CardConfiguration.java
index b9ce17dc..c033a98e 100644
--- a/src/main/java/uk/gov/pay/card/app/config/CardConfiguration.java
+++ b/src/main/java/uk/gov/pay/card/app/config/CardConfiguration.java
@@ -1,7 +1,7 @@
package uk.gov.pay.card.app.config;
import com.fasterxml.jackson.annotation.JsonProperty;
-import io.dropwizard.Configuration;
+import io.dropwizard.core.Configuration;
import javax.validation.constraints.NotNull;
import java.net.URI;
diff --git a/src/main/java/uk/gov/pay/card/resources/HealthCheckResource.java b/src/main/java/uk/gov/pay/card/resources/HealthCheckResource.java
index 49c0e983..9227d862 100644
--- a/src/main/java/uk/gov/pay/card/resources/HealthCheckResource.java
+++ b/src/main/java/uk/gov/pay/card/resources/HealthCheckResource.java
@@ -2,7 +2,7 @@
import com.codahale.metrics.health.HealthCheck;
import com.google.common.collect.ImmutableMap;
-import io.dropwizard.setup.Environment;
+import io.dropwizard.core.setup.Environment;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
diff --git a/src/main/resources/config/config.yaml b/src/main/resources/config/config.yaml
index dcef18ec..a7e098a0 100644
--- a/src/main/resources/config/config.yaml
+++ b/src/main/resources/config/config.yaml
@@ -23,7 +23,7 @@ logging:
customFields:
container: "cardid"
environment: ${ENVIRONMENT}
- - type: sentry
+ - type: pay-dropwizard-3-sentry
threshold: ERROR
dsn: ${SENTRY_DSN:-https://example.com@dummy/1}
environment: ${ENVIRONMENT}
diff --git a/src/test/java/uk/gov/pay/card/pact/ConnectorContractTest.java b/src/test/java/uk/gov/pay/card/pact/ConnectorContractTest.java
index e2116c94..3955e896 100644
--- a/src/test/java/uk/gov/pay/card/pact/ConnectorContractTest.java
+++ b/src/test/java/uk/gov/pay/card/pact/ConnectorContractTest.java
@@ -8,10 +8,7 @@
import au.com.dius.pact.provider.junitsupport.Provider;
import au.com.dius.pact.provider.junitsupport.loader.PactBroker;
import au.com.dius.pact.provider.junitsupport.loader.PactBrokerAuth;
-import au.com.dius.pact.provider.junitsupport.loader.PactFolder;
import au.com.dius.pact.provider.junitsupport.loader.VersionSelector;
-import au.com.dius.pact.provider.junitsupport.target.Target;
-import au.com.dius.pact.provider.junitsupport.target.TestTarget;
import io.dropwizard.testing.junit5.DropwizardAppExtension;
import io.dropwizard.testing.junit5.DropwizardExtensionsSupport;
import org.junit.jupiter.api.BeforeEach;
diff --git a/src/test/java/uk/gov/pay/card/resources/HealthCheckResourceTest.java b/src/test/java/uk/gov/pay/card/resources/HealthCheckResourceTest.java
index ed4838b7..e3f09e65 100644
--- a/src/test/java/uk/gov/pay/card/resources/HealthCheckResourceTest.java
+++ b/src/test/java/uk/gov/pay/card/resources/HealthCheckResourceTest.java
@@ -6,7 +6,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.jayway.jsonassert.JsonAssert;
-import io.dropwizard.setup.Environment;
+import io.dropwizard.core.setup.Environment;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;