Skip to content

Commit ba267cb

Browse files
committed
Merge branch 'main' into clean-services
2 parents c06e15f + 0288de6 commit ba267cb

39 files changed

+284
-131
lines changed

.github/workflows/greetings.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Greetings
2+
3+
on: [pull_request, issues]
4+
5+
jobs:
6+
greeting:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/first-interaction@v1
10+
with:
11+
repo-token: ${{ secrets.GITHUB_TOKEN }}
12+
issue-message: 'Thanks for reporting this issue. We will get back to you in a while'
13+
pr-message: 'Great Job for your first PR in this repository'

.github/workflows/stale.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Mark stale issues and pull requests
2+
3+
on:
4+
schedule:
5+
- cron: "30 1 * * *"
6+
7+
jobs:
8+
stale:
9+
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- uses: actions/stale@v3
14+
with:
15+
repo-token: ${{ secrets.GITHUB_TOKEN }}
16+
stale-issue-message: 'This issue is stale'
17+
stale-pr-message: 'This PR is stale'
18+
stale-issue-label: 'stale'
19+
stale-pr-label: 'stale'

Readme.md renamed to README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,31 @@ class ExampleApp{
3232
}
3333
```
3434

35+
**Builder Pattern**
36+
37+
We love our builders!!! This project heavily utilized the use of builders instead of traditional object creation
38+
using `new`. We do this with the help of Project Lombok's `@Builder` annotation. Read more about the
39+
project [here](https://projectlombok.org/features/all). Read more about the
40+
annotation [here](https://projectlombok.org/features/Builder). Read more about the builder
41+
pattern [here](https://refactoring.guru/design-patterns/builder).
42+
43+
_Example: Customizing your Event Queue implementation_
44+
45+
```
46+
EventQueueIF queue = //get your implementation
47+
Configuration configuration =
48+
Configuration.builder().serverUrl("http://your-server-url").apiKey("your-api-key").build();
49+
ConfigurationManager configurationManager =
50+
ConfigurationManager.builder().queue(queue).configuration(configuration).build();
51+
ExceptionlessClient client =
52+
ExceptionlessClient.builder().configurationManager(configurationManager).build();
53+
```
54+
55+
In this library we have made sure that all the values which are not set by builders fallback to reasonable defaults. So
56+
don't feel the pressure to supply values for all the fields. **Note:** Whenever customizing the client
57+
using `ConfigurationManager` never forget to supply your `serverUrl` and `apiKey` using a `Configuration` object as
58+
shown above.
59+
3560
## Spring Boot Users
3661

3762
You can observe `NoClassDefFoundError` in your Spring-boot apps because Spring-boot uses v3 of `OkHttpClient` while this client uses v4. In that case you have to explicitly declare v4 of the library in you `pom.xml/build.gradle`.

src/main/java/com/exceptionless/exceptionlessclient/ExceptionlessClient.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
import com.exceptionless.exceptionlessclient.configuration.Configuration;
44
import com.exceptionless.exceptionlessclient.configuration.ConfigurationManager;
5+
import com.exceptionless.exceptionlessclient.enums.EventPropertyKey;
6+
import com.exceptionless.exceptionlessclient.enums.EventType;
57
import com.exceptionless.exceptionlessclient.models.Event;
68
import com.exceptionless.exceptionlessclient.models.EventPluginContext;
79
import com.exceptionless.exceptionlessclient.models.PluginContext;
810
import com.exceptionless.exceptionlessclient.models.UserDescription;
9-
import com.exceptionless.exceptionlessclient.models.enums.EventPropertyKey;
10-
import com.exceptionless.exceptionlessclient.models.enums.EventType;
11-
import com.exceptionless.exceptionlessclient.models.submission.SubmissionResponse;
1211
import com.exceptionless.exceptionlessclient.plugins.EventPluginRunner;
12+
import com.exceptionless.exceptionlessclient.submission.SubmissionResponse;
1313
import com.exceptionless.exceptionlessclient.utils.VisibleForTesting;
1414
import lombok.Builder;
1515
import lombok.Getter;
@@ -269,9 +269,16 @@ public SubmissionResponse updateEmailAndDescription(
269269
.postUserDescription(
270270
referenceId,
271271
UserDescription.builder().description(description).emailAddress(email).build());
272+
if (response.hasException()) {
273+
log.error(
274+
String.format("Failed to submit user email and description for event: %s", referenceId),
275+
response.getException());
276+
}
272277
if (!response.isSuccess()) {
273278
log.error(
274-
String.format("Failed to submit user email and description for event: %s", referenceId));
279+
String.format(
280+
"Failed to submit user email and description for event: %s, code: %s",
281+
referenceId, response.getCode()));
275282
}
276283

277284
return response;

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
public class Configuration {
1010
private static final String DEFAULT_SERVER_URL = "https://collector.exceptionless.io";
1111
private static final String DEFAULT_HEARTBEAT_SERVER_URL = "https://heartbeat.exceptionless.io";
12+
private static final String DEFAULT_CONFIG_SERVER_URL = "https://config.exceptionless.io";
1213
private static final Long DEFAULT_UPDATE_SETTINGS_WHEN_IDLE_INTERVAL = 12000L;
1314
private static final Integer DEFAULT_SUBMISSION_BATCH_SIZE = 50;
1415
private static final Integer DEFAULT_SUBMISSION_CLIENT_TIMEOUT_IN_MILLIS = 500;
@@ -17,6 +18,7 @@ public class Configuration {
1718
public static class Property {
1819
public static final String API_KEY = "apiKey";
1920
public static final String SERVER_URL = "serverUrl";
21+
public static final String CONFIG_SERVER_URL = "configServerUrl";
2022
public static final String HEART_BEAT_SERVER_URL = "heartbeatServerUrl";
2123
public static final String UPDATE_SETTINGS_WHEN_IDLE_INTERVAL =
2224
"updateSettingsWhenIdleInterval";
@@ -29,6 +31,7 @@ public static class Property {
2931
@Getter private String apiKey;
3032
@Getter private String serverUrl;
3133
@Getter private String heartbeatServerUrl;
34+
@Getter private String configServerUrl;
3235
@Getter private Long updateSettingsWhenIdleInterval;
3336
@Getter private Integer submissionBatchSize;
3437
@Getter private Integer submissionClientTimeoutInMillis;
@@ -51,6 +54,10 @@ public Configuration(
5154
heartbeatServerUrl == null
5255
? (serverUrl == null ? DEFAULT_HEARTBEAT_SERVER_URL : serverUrl)
5356
: heartbeatServerUrl;
57+
this.configServerUrl =
58+
configServerUrl == null
59+
? (serverUrl == null ? DEFAULT_CONFIG_SERVER_URL : serverUrl)
60+
: configServerUrl;
5461
this.updateSettingsWhenIdleInterval =
5562
updateSettingsWhenIdleInterval == null
5663
? DEFAULT_UPDATE_SETTINGS_WHEN_IDLE_INTERVAL
@@ -88,6 +95,13 @@ public void setServerUrl(String serverUrl) {
8895
propertyChangeSupport.firePropertyChange(Property.SERVER_URL, prevValue, serverUrl);
8996
}
9097

98+
public void setConfigServerUrl(String configServerUrl) {
99+
String prevValue = this.configServerUrl;
100+
this.configServerUrl = configServerUrl;
101+
propertyChangeSupport.firePropertyChange(
102+
Property.CONFIG_SERVER_URL, prevValue, configServerUrl);
103+
}
104+
91105
public void setHeartbeatServerUrl(String heartbeatServerUrl) {
92106
String prevValue = this.heartbeatServerUrl;
93107
this.heartbeatServerUrl = heartbeatServerUrl;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import com.exceptionless.exceptionlessclient.logging.NullLogCapturer;
88
import com.exceptionless.exceptionlessclient.models.EventPluginContext;
99
import com.exceptionless.exceptionlessclient.models.UserInfo;
10-
import com.exceptionless.exceptionlessclient.models.enums.EventPropertyKey;
10+
import com.exceptionless.exceptionlessclient.enums.EventPropertyKey;
1111
import com.exceptionless.exceptionlessclient.plugins.EventPluginIF;
1212
import com.exceptionless.exceptionlessclient.plugins.preconfigured.HeartbeatPlugin;
1313
import com.exceptionless.exceptionlessclient.queue.DefaultEventQueue;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.exceptionless.exceptionlessclient.models.enums;
1+
package com.exceptionless.exceptionlessclient.enums;
22

33
public enum EnvironmentInfoPropertyKey {
44
LOAD_AVG("loadavg"),

src/main/java/com/exceptionless/exceptionlessclient/models/enums/EventPropertyKey.java renamed to src/main/java/com/exceptionless/exceptionlessclient/enums/EventPropertyKey.java

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

33
public enum EventPropertyKey {
44
REF("@ref"),

src/main/java/com/exceptionless/exceptionlessclient/models/enums/EventTag.java renamed to src/main/java/com/exceptionless/exceptionlessclient/enums/EventTag.java

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

33
public enum EventTag {
44
CRITICAL("Critical");

src/main/java/com/exceptionless/exceptionlessclient/models/enums/EventType.java renamed to src/main/java/com/exceptionless/exceptionlessclient/enums/EventType.java

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

33
public enum EventType {
44
ERROR("error"),

0 commit comments

Comments
 (0)