diff --git a/pom.xml b/pom.xml
index f130cfda..cf4c1f10 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,7 +34,7 @@
quarkus-bom
io.quarkus.platform
- 3.5.3
+ 3.8.2
3.3.1
3.4.0
3.11.0
@@ -49,7 +49,7 @@
1.0.5
- 1.7.27
+ 7.6.0
8.0.3
1.1.7
2.70.0
@@ -210,7 +210,7 @@
org.wiremock
- wiremock
+ wiremock-standalone
${wiremock.version}
test
diff --git a/src/main/java/com/redhat/exhort/integration/backend/ExhortIntegration.java b/src/main/java/com/redhat/exhort/integration/backend/ExhortIntegration.java
index e4b1ebe8..12976ad3 100644
--- a/src/main/java/com/redhat/exhort/integration/backend/ExhortIntegration.java
+++ b/src/main/java/com/redhat/exhort/integration/backend/ExhortIntegration.java
@@ -197,7 +197,7 @@ public void configure() {
.when(header(Exchange.CONTENT_ENCODING).isEqualToIgnoreCase(GZIP_ENCODING)).unmarshal().gzipDeflater()
.setProperty(Constants.GZIP_RESPONSE_PROPERTY, constant(Boolean.TRUE))
.end()
- .to(seda("analyticsIdentify"))
+ .to(direct("analyticsIdentify"))
.setProperty(PROVIDERS_PARAM, method(vulnerabilityProvider, "getProvidersFromQueryParam"))
.setProperty(REQUEST_CONTENT_PROPERTY, method(BackendUtils.class, "getResponseMediaType"))
.setProperty(VERBOSE_MODE_HEADER, header(VERBOSE_MODE_HEADER));
@@ -221,7 +221,7 @@ public void configure() {
from(direct("validateToken"))
.routeId("validateToken")
.setProperty(Constants.EXHORT_REQUEST_ID_HEADER, method(BackendUtils.class,"generateRequestId"))
- .to(seda("analyticsIdentify"))
+ .to(direct("analyticsIdentify"))
.choice()
.when(header(Constants.SNYK_TOKEN_HEADER).isNotNull())
.setProperty(PROVIDERS_PARAM, constant(Arrays.asList(Constants.SNYK_PROVIDER)))
@@ -239,7 +239,7 @@ public void configure() {
.setHeader(Constants.EXHORT_REQUEST_ID_HEADER, exchangeProperty(Constants.EXHORT_REQUEST_ID_HEADER))
.process(this::cleanUpHeaders);
- from(seda("analyticsIdentify"))
+ from(direct("analyticsIdentify"))
.routeId("analyticsIdentify")
.process(monitoringProcessor::processOriginalRequest)
.to(seda("analyticsAsyncIdentify").waitForTaskToComplete(WaitForTaskToComplete.Never));
diff --git a/src/main/java/com/redhat/exhort/monitoring/SentryMonitoringClientFactory.java b/src/main/java/com/redhat/exhort/monitoring/SentryMonitoringClientFactory.java
index bf877e11..4c9caff8 100644
--- a/src/main/java/com/redhat/exhort/monitoring/SentryMonitoringClientFactory.java
+++ b/src/main/java/com/redhat/exhort/monitoring/SentryMonitoringClientFactory.java
@@ -25,7 +25,7 @@
import com.redhat.exhort.monitoring.impl.SentryMonitoringClient;
import io.quarkus.runtime.annotations.RegisterForReflection;
-import io.sentry.SentryClientFactory;
+import io.sentry.SentryOptions;
import jakarta.enterprise.context.ApplicationScoped;
@@ -43,9 +43,10 @@ public class SentryMonitoringClientFactory {
String environment;
public MonitoringClient newInstance() {
- var client = SentryClientFactory.sentryClient(dsn.get());
- client.addTag("server_name", serverName.get());
- client.addTag("environment", environment);
- return new SentryMonitoringClient(client);
+ SentryOptions opt = new SentryOptions();
+ opt.setDsn(dsn.get());
+ opt.setEnvironment(environment);
+ opt.setTag("server_name", serverName.get());
+ return new SentryMonitoringClient(opt);
}
}
diff --git a/src/main/java/com/redhat/exhort/monitoring/impl/SentryMonitoringClient.java b/src/main/java/com/redhat/exhort/monitoring/impl/SentryMonitoringClient.java
index fb3e10fb..164996f6 100644
--- a/src/main/java/com/redhat/exhort/monitoring/impl/SentryMonitoringClient.java
+++ b/src/main/java/com/redhat/exhort/monitoring/impl/SentryMonitoringClient.java
@@ -18,58 +18,50 @@
package com.redhat.exhort.monitoring.impl;
-import java.util.Base64;
import java.util.Map;
import com.redhat.exhort.monitoring.MonitoringClient;
import com.redhat.exhort.monitoring.MonitoringContext;
import io.quarkus.runtime.annotations.RegisterForReflection;
-import io.sentry.SentryClient;
-import io.sentry.event.BreadcrumbBuilder;
-import io.sentry.event.UserBuilder;
+import io.sentry.Hub;
+import io.sentry.SentryOptions;
+import io.sentry.protocol.User;
@RegisterForReflection
public class SentryMonitoringClient implements MonitoringClient {
- private final SentryClient client;
+ private final SentryOptions options;
- public SentryMonitoringClient(SentryClient client) {
- this.client = client;
+ public SentryMonitoringClient(SentryOptions options) {
+ this.options = options;
}
@Override
public void reportException(Throwable exception, MonitoringContext context) {
+ var hub = new Hub(options);
if (!context.breadcrumbs().isEmpty()) {
- context
- .breadcrumbs()
- .forEach(
- b ->
- this.client
- .getContext()
- .recordBreadcrumb(
- new BreadcrumbBuilder()
- .setMessage(new String(Base64.getEncoder().encode(b.getBytes())))
- .setType(null)
- .build()));
+ context.breadcrumbs().forEach(b -> hub.addBreadcrumb(b));
}
if (context.userId() != null) {
- this.client.getContext().setUser(new UserBuilder().setId(context.userId()).build());
+ var user = new User();
+ user.setId(context.userId());
+ hub.setUser(user);
}
- addAdditionalData(context.metadata(), context.tags());
- this.client.sendException(exception);
+ addAdditionalData(hub, context.metadata(), context.tags());
+ hub.captureException(exception);
}
- private void addAdditionalData(Map metadata, Map tags) {
+ private void addAdditionalData(Hub hub, Map metadata, Map tags) {
if (metadata != null) {
metadata.entrySet().stream()
.filter(e -> e.getValue() != null)
- .forEach(e -> this.client.getContext().addExtra(e.getKey(), e.getValue()));
+ .forEach(e -> hub.setExtra(e.getKey(), e.getValue()));
}
if (tags != null) {
tags.entrySet().stream()
.filter(e -> e.getValue() != null)
- .forEach(t -> this.client.getContext().addTag(t.getKey(), t.getValue()));
+ .forEach(t -> hub.setTag(t.getKey(), t.getValue()));
}
}
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 58f88cb6..1cd67c54 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -31,6 +31,7 @@ quarkus.rest-client.segment-api.url=https://api.segment.io/
# monitoring.sentry.dsn=https://@app.glitchtip.com/
# monitoring.sentry.servername=local
# monitoring.sentry.environment=development
+sentry.stacktrace.app.packages=
quarkus.management.enabled=true
quarkus.http.limits.max-body-size=4G
diff --git a/src/test/java/com/redhat/exhort/extensions/InjectWireMock.java b/src/test/java/com/redhat/exhort/extensions/InjectWireMock.java
index 7bf832a7..72eee7d7 100644
--- a/src/test/java/com/redhat/exhort/extensions/InjectWireMock.java
+++ b/src/test/java/com/redhat/exhort/extensions/InjectWireMock.java
@@ -23,6 +23,6 @@
import io.quarkus.test.common.QuarkusTestResource;
-@QuarkusTestResource(WiremockV3Extension.class)
+@QuarkusTestResource(WiremockExtension.class)
@Retention(RetentionPolicy.RUNTIME)
public @interface InjectWireMock {}
diff --git a/src/test/java/com/redhat/exhort/extensions/WiremockV3Extension.java b/src/test/java/com/redhat/exhort/extensions/WiremockExtension.java
similarity index 95%
rename from src/test/java/com/redhat/exhort/extensions/WiremockV3Extension.java
rename to src/test/java/com/redhat/exhort/extensions/WiremockExtension.java
index aebafdaa..043c5225 100644
--- a/src/test/java/com/redhat/exhort/extensions/WiremockV3Extension.java
+++ b/src/test/java/com/redhat/exhort/extensions/WiremockExtension.java
@@ -26,7 +26,7 @@
import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
-public class WiremockV3Extension implements QuarkusTestResourceLifecycleManager {
+public class WiremockExtension implements QuarkusTestResourceLifecycleManager {
public static final String SNYK_TOKEN = "snyk-token-xyz";
diff --git a/src/test/java/com/redhat/exhort/integration/AbstractAnalysisTest.java b/src/test/java/com/redhat/exhort/integration/AbstractAnalysisTest.java
index c30b2d88..88d56627 100644
--- a/src/test/java/com/redhat/exhort/integration/AbstractAnalysisTest.java
+++ b/src/test/java/com/redhat/exhort/integration/AbstractAnalysisTest.java
@@ -28,7 +28,7 @@
import static com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor;
import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
-import static com.redhat.exhort.extensions.WiremockV3Extension.SNYK_TOKEN;
+import static com.redhat.exhort.extensions.WiremockExtension.SNYK_TOKEN;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -51,7 +51,7 @@
import com.github.tomakehurst.wiremock.client.BasicCredentials;
import com.google.common.base.Charsets;
import com.redhat.exhort.extensions.InjectWireMock;
-import com.redhat.exhort.extensions.WiremockV3Extension;
+import com.redhat.exhort.extensions.WiremockExtension;
import com.redhat.exhort.integration.providers.snyk.SnykRequestBuilder;
import io.quarkus.test.common.QuarkusTestResource;
@@ -63,7 +63,7 @@
import jakarta.ws.rs.core.MediaType;
@QuarkusTest
-@QuarkusTestResource(WiremockV3Extension.class)
+@QuarkusTestResource(WiremockExtension.class)
public abstract class AbstractAnalysisTest {
private static final String SNYK_UA_PATTERN = "redhat-snyk-exhort-.*";