Skip to content

Commit f17822c

Browse files
committed
Make RequestDetailsResolver public
1 parent 6f23a76 commit f17822c

File tree

2 files changed

+28
-8
lines changed

2 files changed

+28
-8
lines changed

sentry/api/sentry.api

+6
Original file line numberDiff line numberDiff line change
@@ -2174,6 +2174,12 @@ public final class io/sentry/RequestDetails {
21742174
public fun getUrl ()Ljava/net/URL;
21752175
}
21762176

2177+
public final class io/sentry/RequestDetailsResolver {
2178+
public fun <init> (Lio/sentry/SentryOptions;)V
2179+
public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
2180+
public fun resolve ()Lio/sentry/RequestDetails;
2181+
}
2182+
21772183
public final class io/sentry/SamplingContext {
21782184
public fun <init> (Lio/sentry/TransactionContext;Lio/sentry/CustomSamplingContext;)V
21792185
public fun <init> (Lio/sentry/TransactionContext;Lio/sentry/CustomSamplingContext;Ljava/lang/Double;Ljava/util/Map;)V

sentry/src/main/java/io/sentry/RequestDetailsResolver.java

+22-8
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,39 @@
44
import java.net.URI;
55
import java.util.HashMap;
66
import java.util.Map;
7+
import org.jetbrains.annotations.ApiStatus;
78
import org.jetbrains.annotations.NotNull;
9+
import org.jetbrains.annotations.Nullable;
810

911
/** Resolves {@link RequestDetails}. */
10-
final class RequestDetailsResolver {
12+
@ApiStatus.Experimental
13+
public final class RequestDetailsResolver {
1114
/** HTTP Header for the user agent. */
1215
private static final String USER_AGENT = "User-Agent";
1316
/** HTTP Header for the authentication to Sentry. */
1417
private static final String SENTRY_AUTH = "X-Sentry-Auth";
1518

16-
private final @NotNull SentryOptions options;
19+
private final @NotNull Dsn dsn;
20+
private final @Nullable String sentryClientName;
1721

22+
public RequestDetailsResolver(
23+
final @NotNull String dsn, final @Nullable String sentryClientName) {
24+
Objects.requireNonNull(dsn, "dsn is required");
25+
26+
this.dsn = new Dsn(dsn);
27+
this.sentryClientName = sentryClientName;
28+
}
29+
30+
@ApiStatus.Internal
1831
public RequestDetailsResolver(final @NotNull SentryOptions options) {
19-
this.options = Objects.requireNonNull(options, "options is required");
32+
Objects.requireNonNull(options, "options is required");
33+
34+
this.dsn = options.retrieveParsedDsn();
35+
this.sentryClientName = options.getSentryClientName();
2036
}
2137

2238
@NotNull
23-
RequestDetails resolve() {
24-
final Dsn dsn = options.retrieveParsedDsn();
39+
public RequestDetails resolve() {
2540
final URI sentryUri = dsn.getSentryUri();
2641
final String envelopeUrl = sentryUri.resolve(sentryUri.getPath() + "/envelope/").toString();
2742

@@ -33,15 +48,14 @@ RequestDetails resolve() {
3348
+ SentryClient.SENTRY_PROTOCOL_VERSION
3449
+ ","
3550
+ "sentry_client="
36-
+ options.getSentryClientName()
51+
+ sentryClientName
3752
+ ","
3853
+ "sentry_key="
3954
+ publicKey
4055
+ (secretKey != null && secretKey.length() > 0 ? (",sentry_secret=" + secretKey) : "");
41-
final String userAgent = options.getSentryClientName();
4256

4357
final Map<String, String> headers = new HashMap<>();
44-
headers.put(USER_AGENT, userAgent);
58+
headers.put(USER_AGENT, sentryClientName);
4559
headers.put(SENTRY_AUTH, authHeader);
4660

4761
return new RequestDetails(envelopeUrl, headers);

0 commit comments

Comments
 (0)