Skip to content

Commit ea67fb8

Browse files
committed
Moved error parsing logic to plugin
1 parent da1c184 commit ea67fb8

File tree

10 files changed

+41
-84
lines changed

10 files changed

+41
-84
lines changed

src/main/java/com/exceptionless/exceptionlessclient/configuration/ConfigurationManager.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ public class ConfigurationManager {
3535
private static final Integer API_KEY_MIN_LENGTH = 11;
3636
private static final Integer DEFAULT_HEART_BEAT_INTERVAL_IN_SECS = 30;
3737

38-
@Getter private final ErrorParserIF errorParser;
3938
@Getter private final LastReferenceIdManagerIF lastReferenceIdManager;
4039
@Getter private final SubmissionClientIF submissionClient;
4140
@Getter private final EventQueueIF queue;
@@ -52,7 +51,6 @@ public class ConfigurationManager {
5251

5352
@Builder
5453
public ConfigurationManager(
55-
ErrorParserIF errorParser,
5654
LastReferenceIdManagerIF lastReferenceIdManager,
5755
LogCapturerIF logCatpurer,
5856
SubmissionClientIF submissionClient,
@@ -62,7 +60,6 @@ public ConfigurationManager(
6260
Configuration configuration,
6361
Integer maxQueueItems,
6462
Integer processingIntervalInSecs) {
65-
this.errorParser = errorParser == null ? DefaultErrorParser.builder().build() : errorParser;
6663
this.lastReferenceIdManager =
6764
lastReferenceIdManager == null
6865
? DefaultLastReferenceIdManager.builder().build()

src/main/java/com/exceptionless/exceptionlessclient/plugins/preconfigured/EnvironmentInfoPlugin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.exceptionless.exceptionlessclient.models.enums.EnvironmentInfoPropertyKey;
77
import com.exceptionless.exceptionlessclient.models.services.EnvironmentInfo;
88
import com.exceptionless.exceptionlessclient.plugins.EventPluginIF;
9-
import com.exceptionless.exceptionlessclient.services.EnvironmentInfoGetArgs;
9+
import com.exceptionless.exceptionlessclient.plugins.preconfigured.args.EnvironmentInfoGetArgs;
1010
import com.sun.management.OperatingSystemMXBean;
1111
import lombok.Builder;
1212
import lombok.extern.slf4j.Slf4j;
@@ -67,7 +67,7 @@ public void run(
6767
}
6868
}
6969

70-
public EnvironmentInfo getEnvironmentInfo(EnvironmentInfoGetArgs args) {
70+
private EnvironmentInfo getEnvironmentInfo(EnvironmentInfoGetArgs args) {
7171
OperatingSystemMXBean operatingSystemMXBean =
7272
(OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
7373

src/main/java/com/exceptionless/exceptionlessclient/plugins/preconfigured/ErrorPlugin.java

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
import com.exceptionless.exceptionlessclient.models.EventPluginContext;
66
import com.exceptionless.exceptionlessclient.models.enums.EventPropertyKey;
77
import com.exceptionless.exceptionlessclient.models.enums.EventType;
8+
import com.exceptionless.exceptionlessclient.models.services.error.Error;
9+
import com.exceptionless.exceptionlessclient.models.services.error.StackFrame;
810
import com.exceptionless.exceptionlessclient.plugins.EventPluginIF;
911
import lombok.Builder;
1012

11-
import java.util.HashSet;
12-
import java.util.Map;
13-
import java.util.Set;
13+
import java.util.*;
14+
import java.util.stream.Collectors;
1415

1516
public class ErrorPlugin implements EventPluginIF {
1617
private static final Integer DEFAULT_PRIORITY = 30;
@@ -37,9 +38,30 @@ public void run(
3738
return;
3839
}
3940

40-
event.addError(configurationManager.getErrorParser().parse(exception));
41+
event.addError(parse(exception));
4142

4243
Set<String> dataExclusions = new HashSet<>(configurationManager.getDataExclusions());
4344
event.addData(Map.of(EventPropertyKey.EXTRA.value(), exception), dataExclusions);
4445
}
46+
47+
private Error parse(Exception exception) {
48+
return Error.builder()
49+
.type(exception.getClass().getCanonicalName())
50+
.message(exception.getMessage())
51+
.stackTrace(getStackFrames(exception))
52+
.build();
53+
}
54+
55+
private List<StackFrame> getStackFrames(Exception exception) {
56+
return Arrays.stream(exception.getStackTrace())
57+
.map(
58+
stackTraceElement ->
59+
StackFrame.builder()
60+
.name(stackTraceElement.getMethodName())
61+
.filename(stackTraceElement.getFileName())
62+
.lineNumber(stackTraceElement.getLineNumber())
63+
.declaringType(stackTraceElement.getClassName())
64+
.build())
65+
.collect(Collectors.toList());
66+
}
4567
}

src/main/java/com/exceptionless/exceptionlessclient/plugins/preconfigured/RequestInfoPlugin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import com.exceptionless.exceptionlessclient.models.EventPluginContext;
66
import com.exceptionless.exceptionlessclient.models.services.RequestInfo;
77
import com.exceptionless.exceptionlessclient.plugins.EventPluginIF;
8-
import com.exceptionless.exceptionlessclient.services.RequestInfoGetArgs;
8+
import com.exceptionless.exceptionlessclient.plugins.preconfigured.args.RequestInfoGetArgs;
99
import com.exceptionless.exceptionlessclient.utils.Utils;
1010
import lombok.Builder;
1111
import lombok.extern.slf4j.Slf4j;
@@ -65,7 +65,7 @@ public void run(
6565
event.addRequestInfo(requestInfo);
6666
}
6767

68-
public RequestInfo getRequestInfo(HttpRequest request, RequestInfoGetArgs args) {
68+
private RequestInfo getRequestInfo(HttpRequest request, RequestInfoGetArgs args) {
6969
RequestInfo.RequestInfoBuilder<?, ?> builder =
7070
RequestInfo.builder()
7171
.userAgent(request.headers().firstValue("User-Agent").orElse(null))

src/main/java/com/exceptionless/exceptionlessclient/services/EnvironmentInfoGetArgs.java renamed to src/main/java/com/exceptionless/exceptionlessclient/plugins/preconfigured/args/EnvironmentInfoGetArgs.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.exceptionless.exceptionlessclient.services;
1+
package com.exceptionless.exceptionlessclient.plugins.preconfigured.args;
22

33
import lombok.Builder;
44
import lombok.Value;

src/main/java/com/exceptionless/exceptionlessclient/services/RequestInfoGetArgs.java renamed to src/main/java/com/exceptionless/exceptionlessclient/plugins/preconfigured/args/RequestInfoGetArgs.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.exceptionless.exceptionlessclient.services;
1+
package com.exceptionless.exceptionlessclient.plugins.preconfigured.args;
22

33
import lombok.Builder;
44
import lombok.Value;

src/main/java/com/exceptionless/exceptionlessclient/services/DefaultErrorParser.java

Lines changed: 0 additions & 36 deletions
This file was deleted.

src/main/java/com/exceptionless/exceptionlessclient/services/ErrorParserIF.java

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/test/java/com/exceptionless/exceptionlessclient/configuration/PrivateInformationInclusionsTest.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,19 @@ public void itCanSendChangesToListeners() {
2222
PrivateInformationInclusions.builder().build();
2323
privateInformationInclusions.addPropertyChangeListener(listener);
2424

25-
privateInformationInclusions.applyToAll(false);
26-
privateInformationInclusions.setQueryString(true);
27-
privateInformationInclusions.setPostData(true);
28-
privateInformationInclusions.setCookies(true);
29-
privateInformationInclusions.setIpAddress(true);
30-
privateInformationInclusions.setMachineName(true);
31-
privateInformationInclusions.setUserName(true);
25+
privateInformationInclusions.applyToAll(true);
26+
privateInformationInclusions.setQueryString(false);
27+
privateInformationInclusions.setPostData(false);
28+
privateInformationInclusions.setCookies(false);
29+
privateInformationInclusions.setIpAddress(false);
30+
privateInformationInclusions.setMachineName(false);
31+
privateInformationInclusions.setUserName(false);
3232

3333
List<String> properties =
3434
List.of(
3535
"all", "queryString", "postData", "cookies", "ipAddress", "machineName", "userName");
36-
List<Boolean> oldValues = List.of(true, false, false, false, false, false, false);
37-
List<Boolean> newValues = List.of(false, true, true, true, true, true, true);
36+
List<Boolean> oldValues = List.of(false, true, true, true, true, true, true);
37+
List<Boolean> newValues = List.of(true, false, false, false, false, false, false);
3838

3939
properties.forEach(
4040
property ->

src/test/java/com/exceptionless/exceptionlessclient/services/DefaultErrorParserTest.java

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)