Skip to content

Commit 29e86f3

Browse files
committed
enable sending complete JSON payloads, as proxy for other SDKs
1 parent c057e12 commit 29e86f3

File tree

4 files changed

+46
-1
lines changed

4 files changed

+46
-1
lines changed

rollbar-android/src/main/java/com/rollbar/android/Rollbar.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.rollbar.notifier.config.ConfigProvider;
1313
import com.rollbar.android.provider.NotifierProvider;
1414
import com.rollbar.android.provider.PersonProvider;
15+
import com.rollbar.api.payload.Payload;
1516
import com.rollbar.api.payload.data.Level;
1617
import com.rollbar.notifier.config.Config;
1718
import com.rollbar.notifier.config.ConfigBuilder;
@@ -793,6 +794,15 @@ public void log(final Throwable error, final Map<String, Object> custom, final S
793794
rollbar.log(error, custom, description, level);
794795
}
795796

797+
/**
798+
* Send payload to Rollbar.
799+
*
800+
* @param payload JSON payload string.
801+
*/
802+
public void send(String json) {
803+
rollbar.send(new Payload(json));
804+
}
805+
796806
/**
797807
* report an exception to Rollbar
798808
* @param throwable the exception that occurred.

rollbar-api/src/main/java/com/rollbar/api/payload/Payload.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,23 @@ public class Payload implements JsonSerializable {
1515

1616
private final Data data;
1717

18+
public final String json;
19+
1820
private Payload(Builder builder) {
1921
this.accessToken = builder.accessToken;
2022
this.data = builder.data;
23+
this.json = null;
24+
}
25+
26+
/**
27+
* Constructor.
28+
*
29+
* @param json the JSON payload.
30+
*/
31+
public Payload(String json) {
32+
this.accessToken = null;
33+
this.data = null;
34+
this.json = json;
2135
}
2236

2337
/**

rollbar-java/src/main/java/com/rollbar/notifier/Rollbar.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,23 @@ public void close(boolean wait) throws Exception {
642642
this.config.sender().close(wait);
643643
}
644644

645+
/**
646+
* Send payload.
647+
*
648+
* @param payload the payload.
649+
*/
650+
public void send(Payload payload) {
651+
try {
652+
this.configReadLock.lock();
653+
Config config = this.config;
654+
this.configReadLock.unlock();
655+
656+
sendPayload(config, payload);
657+
} catch (Exception e) {
658+
LOGGER.error("Error while sending payload to Rollbar: {}", e);
659+
}
660+
}
661+
645662
private void process(ThrowableWrapper error, Map<String, Object> custom, String description,
646663
Level level, boolean isUncaught) {
647664
this.configReadLock.lock();
@@ -652,7 +669,7 @@ private void process(ThrowableWrapper error, Map<String, Object> custom, String
652669
LOGGER.debug("Notifier disabled.");
653670
return;
654671
}
655-
672+
656673
// Pre filter
657674
if (config.filter() != null && config.filter().preProcess(level, error.getThrowable(), custom,
658675
description)) {

rollbar-java/src/main/java/com/rollbar/notifier/sender/json/JsonSerializerImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ public JsonSerializerImpl(boolean prettyPrint) {
5959

6060
@Override
6161
public String toJson(Payload payload) {
62+
if (payload.json != null) {
63+
return payload.json;
64+
}
65+
6266
StringBuilder builder = new StringBuilder();
6367
serializeValue(builder, payload, 0);
6468
return builder.toString();

0 commit comments

Comments
 (0)