Skip to content

Commit

Permalink
Merge 8b1b62b into f274c79
Browse files Browse the repository at this point in the history
  • Loading branch information
markushi committed Jul 5, 2023
2 parents f274c79 + 8b1b62b commit 7954f77
Show file tree
Hide file tree
Showing 60 changed files with 830 additions and 192 deletions.
183 changes: 129 additions & 54 deletions sentry/api/sentry.api

Large diffs are not rendered by default.

3 changes: 1 addition & 2 deletions sentry/src/main/java/io/sentry/Breadcrumb.java
Original file line number Diff line number Diff line change
Expand Up @@ -561,8 +561,7 @@ public static final class JsonKeys {
}

@Override
public void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger)
throws IOException {
public void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException {
writer.beginObject();
writer.name(JsonKeys.TIMESTAMP).value(logger, timestamp);
if (message != null) {
Expand Down
39 changes: 39 additions & 0 deletions sentry/src/main/java/io/sentry/InternalSentrySdk.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package io.sentry;

import io.sentry.util.MapObjectWriter;
import java.util.HashMap;
import java.util.Map;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

@ApiStatus.Internal
public final class InternalSentrySdk {

@NotNull
public static Map<String, Object> serializeScope(@Nullable Scope scope) {
final @NotNull Map<String, Object> data = new HashMap<>();
if (scope == null) {
return data;
}

final @NotNull SentryOptions options = scope.getOptions();
final @NotNull ILogger logger = options.getLogger();
final @NotNull ObjectWriter writer = new MapObjectWriter(data);

try {
writer.name("user").value(logger, scope.getUser());
writer.name("contexts").value(logger, scope.getContexts());
writer.name("tags").value(logger, scope.getTags());
writer.name("extras").value(logger, scope.getExtras());
writer.name("fingerprint").value(logger, scope.getFingerprint());
writer.name("level").value(logger, scope.getLevel());
writer.name("breadcrumbs").value(logger, scope.getBreadcrumbs());
} catch (Exception e) {
options.getLogger().log(SentryLevel.ERROR, "Could not serialize scope.", e);
return new HashMap<>();
}

return data;
}
}
10 changes: 5 additions & 5 deletions sentry/src/main/java/io/sentry/JsonObjectSerializer.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public JsonObjectSerializer(int maxDepth) {
}

public void serialize(
@NotNull JsonObjectWriter writer, @NotNull ILogger logger, @Nullable Object object)
@NotNull ObjectWriter writer, @NotNull ILogger logger, @Nullable Object object)
throws IOException {
if (object == null) {
writer.nullValue();
Expand Down Expand Up @@ -89,7 +89,7 @@ public void serialize(
// Helper

private void serializeDate(
@NotNull JsonObjectWriter writer, @NotNull ILogger logger, @NotNull Date date)
@NotNull ObjectWriter writer, @NotNull ILogger logger, @NotNull Date date)
throws IOException {
try {
writer.value(DateUtils.getTimestamp(date));
Expand All @@ -100,7 +100,7 @@ private void serializeDate(
}

private void serializeTimeZone(
@NotNull JsonObjectWriter writer, @NotNull ILogger logger, @NotNull TimeZone timeZone)
@NotNull ObjectWriter writer, @NotNull ILogger logger, @NotNull TimeZone timeZone)
throws IOException {
try {
writer.value(timeZone.getID());
Expand All @@ -111,7 +111,7 @@ private void serializeTimeZone(
}

private void serializeCollection(
@NotNull JsonObjectWriter writer, @NotNull ILogger logger, @NotNull Collection<?> collection)
@NotNull ObjectWriter writer, @NotNull ILogger logger, @NotNull Collection<?> collection)
throws IOException {
writer.beginArray();
for (Object object : collection) {
Expand All @@ -121,7 +121,7 @@ private void serializeCollection(
}

private void serializeMap(
@NotNull JsonObjectWriter writer, @NotNull ILogger logger, @NotNull Map<?, ?> map)
@NotNull ObjectWriter writer, @NotNull ILogger logger, @NotNull Map<?, ?> map)
throws IOException {
writer.beginObject();
for (Object key : map.keySet()) {
Expand Down
78 changes: 75 additions & 3 deletions sentry/src/main/java/io/sentry/JsonObjectWriter.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,85 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public final class JsonObjectWriter extends JsonWriter {
public final class JsonObjectWriter implements ObjectWriter {

private final JsonWriter jsonWriter;
private final JsonObjectSerializer jsonObjectSerializer;

public JsonObjectWriter(Writer out, int maxDepth) {
super(out);
jsonWriter = new JsonWriter(out);
jsonObjectSerializer = new JsonObjectSerializer(maxDepth);
}

@Override
public JsonObjectWriter beginArray() throws IOException {
jsonWriter.beginArray();
return this;
}

@Override
public JsonObjectWriter endArray() throws IOException {
jsonWriter.endArray();
return this;
}

@Override
public JsonObjectWriter beginObject() throws IOException {
jsonWriter.beginObject();
return this;
}

@Override
public JsonObjectWriter endObject() throws IOException {
jsonWriter.endObject();
return this;
}

@Override
public JsonObjectWriter name(String name) throws IOException {
super.name(name);
jsonWriter.name(name);
return this;
}

@Override
public JsonObjectWriter value(String value) throws IOException {
jsonWriter.value(value);
return this;
}

@Override
public JsonObjectWriter nullValue() throws IOException {
jsonWriter.nullValue();
return this;
}

@Override
public JsonObjectWriter value(boolean value) throws IOException {
jsonWriter.value(value);
return this;
}

@Override
public JsonObjectWriter value(Boolean value) throws IOException {
jsonWriter.value(value);
return this;
}

@Override
public JsonObjectWriter value(double value) throws IOException {
jsonWriter.value(value);
return this;
}

@Override
public JsonObjectWriter value(long value) throws IOException {
jsonWriter.value(value);
return this;
}

@Override
public JsonObjectWriter value(Number value) throws IOException {
jsonWriter.value(value);
return this;
}

Expand All @@ -29,9 +96,14 @@ public JsonObjectWriter name(String name) throws IOException {
* @param object Object to encode. May be null.
* @return this writer.
*/
@Override
public JsonObjectWriter value(@NotNull ILogger logger, @Nullable Object object)
throws IOException {
jsonObjectSerializer.serialize(this, logger, object);
return this;
}

public void setIndent(@NotNull final String indent) {
jsonWriter.setIndent(indent);
}
}
2 changes: 1 addition & 1 deletion sentry/src/main/java/io/sentry/JsonSerializable.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
import org.jetbrains.annotations.NotNull;

public interface JsonSerializable {
void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger) throws IOException;
void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException;
}
33 changes: 33 additions & 0 deletions sentry/src/main/java/io/sentry/ObjectWriter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package io.sentry;

import java.io.IOException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public interface ObjectWriter {
ObjectWriter beginArray() throws IOException;

ObjectWriter endArray() throws IOException;

ObjectWriter beginObject() throws IOException;

ObjectWriter endObject() throws IOException;

ObjectWriter name(String name) throws IOException;

ObjectWriter value(String value) throws IOException;

ObjectWriter nullValue() throws IOException;

ObjectWriter value(boolean value) throws IOException;

ObjectWriter value(Boolean value) throws IOException;

ObjectWriter value(double value) throws IOException;

ObjectWriter value(long value) throws IOException;

ObjectWriter value(Number value) throws IOException;

ObjectWriter value(@NotNull ILogger logger, @Nullable Object object) throws IOException;
}
2 changes: 1 addition & 1 deletion sentry/src/main/java/io/sentry/ProfilingTraceData.java
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@ public static final class JsonKeys {
}

@Override
public void serialize(final @NotNull JsonObjectWriter writer, final @NotNull ILogger logger)
public void serialize(final @NotNull ObjectWriter writer, final @NotNull ILogger logger)
throws IOException {
writer.beginObject();
writer.name(JsonKeys.ANDROID_API_LEVEL).value(logger, androidApiLevel);
Expand Down
3 changes: 1 addition & 2 deletions sentry/src/main/java/io/sentry/ProfilingTransactionData.java
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,7 @@ public static final class JsonKeys {
}

@Override
public void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger)
throws IOException {
public void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException {
writer.beginObject();
writer.name(JsonKeys.ID).value(logger, id);
writer.name(JsonKeys.TRACE_ID).value(logger, traceId);
Expand Down
5 changes: 5 additions & 0 deletions sentry/src/main/java/io/sentry/Scope.java
Original file line number Diff line number Diff line change
Expand Up @@ -802,6 +802,11 @@ public void withTransaction(final @NotNull IWithTransaction callback) {
}
}

@NotNull
SentryOptions getOptions() {
return options;
}

@ApiStatus.Internal
public @Nullable Session getSession() {
return session;
Expand Down
4 changes: 1 addition & 3 deletions sentry/src/main/java/io/sentry/SentryBaseEvent.java
Original file line number Diff line number Diff line change
Expand Up @@ -345,9 +345,7 @@ public static final class JsonKeys {

public static final class Serializer {
public void serialize(
@NotNull SentryBaseEvent baseEvent,
@NotNull JsonObjectWriter writer,
@NotNull ILogger logger)
@NotNull SentryBaseEvent baseEvent, @NotNull ObjectWriter writer, @NotNull ILogger logger)
throws IOException {
if (baseEvent.eventId != null) {
writer.name(JsonKeys.EVENT_ID).value(logger, baseEvent.eventId);
Expand Down
3 changes: 1 addition & 2 deletions sentry/src/main/java/io/sentry/SentryEnvelopeHeader.java
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,7 @@ public static final class JsonKeys {
}

@Override
public void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger)
throws IOException {
public void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException {
writer.beginObject();
if (eventId != null) {
writer.name(JsonKeys.EVENT_ID).value(logger, eventId);
Expand Down
3 changes: 1 addition & 2 deletions sentry/src/main/java/io/sentry/SentryEnvelopeItemHeader.java
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,7 @@ public static final class JsonKeys {
}

@Override
public void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger)
throws IOException {
public void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException {
writer.beginObject();
if (contentType != null) {
writer.name(JsonKeys.CONTENT_TYPE).value(contentType);
Expand Down
3 changes: 1 addition & 2 deletions sentry/src/main/java/io/sentry/SentryEvent.java
Original file line number Diff line number Diff line change
Expand Up @@ -248,8 +248,7 @@ public static final class JsonKeys {
}

@Override
public void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger)
throws IOException {
public void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException {
writer.beginObject();
writer.name(JsonKeys.TIMESTAMP).value(logger, timestamp);
if (message != null) {
Expand Down
3 changes: 1 addition & 2 deletions sentry/src/main/java/io/sentry/SentryItemType.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,7 @@ public String getItemType() {
}

@Override
public void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger)
throws IOException {
public void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException {
writer.value(itemType);
}

Expand Down
3 changes: 1 addition & 2 deletions sentry/src/main/java/io/sentry/SentryLevel.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ public enum SentryLevel implements JsonSerializable {
FATAL;

@Override
public void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger)
throws IOException {
public void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException {
writer.value(name().toLowerCase(Locale.ROOT));
}

Expand Down
3 changes: 1 addition & 2 deletions sentry/src/main/java/io/sentry/SentryLockReason.java
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,7 @@ public static final class JsonKeys {
}

@Override
public void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger)
throws IOException {
public void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException {
writer.beginObject();
writer.name(JsonKeys.TYPE).value(type);
if (address != null) {
Expand Down
3 changes: 1 addition & 2 deletions sentry/src/main/java/io/sentry/Session.java
Original file line number Diff line number Diff line change
Expand Up @@ -357,8 +357,7 @@ public static final class JsonKeys {
}

@Override
public void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger)
throws IOException {
public void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException {
writer.beginObject();
if (sessionId != null) {
writer.name(JsonKeys.SID).value(sessionId.toString());
Expand Down
3 changes: 1 addition & 2 deletions sentry/src/main/java/io/sentry/SpanContext.java
Original file line number Diff line number Diff line change
Expand Up @@ -231,8 +231,7 @@ public static final class JsonKeys {
}

@Override
public void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger)
throws IOException {
public void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException {
writer.beginObject();
writer.name(JsonKeys.TRACE_ID);
traceId.serialize(writer, logger);
Expand Down
3 changes: 1 addition & 2 deletions sentry/src/main/java/io/sentry/SpanId.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,7 @@ public String toString() {
// JsonElementSerializer

@Override
public void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger)
throws IOException {
public void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException {
writer.value(value);
}

Expand Down
3 changes: 1 addition & 2 deletions sentry/src/main/java/io/sentry/SpanStatus.java
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,7 @@ private boolean matches(int httpStatusCode) {
// JsonSerializable

@Override
public void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger)
throws IOException {
public void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException {
writer.value(name().toLowerCase(Locale.ROOT));
}

Expand Down
3 changes: 1 addition & 2 deletions sentry/src/main/java/io/sentry/TraceContext.java
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,7 @@ public static final class JsonKeys {
}

@Override
public void serialize(@NotNull JsonObjectWriter writer, @NotNull ILogger logger)
throws IOException {
public void serialize(@NotNull ObjectWriter writer, @NotNull ILogger logger) throws IOException {
writer.beginObject();
writer.name(TraceContext.JsonKeys.TRACE_ID).value(logger, traceId);
writer.name(TraceContext.JsonKeys.PUBLIC_KEY).value(publicKey);
Expand Down

0 comments on commit 7954f77

Please sign in to comment.