Skip to content

Commit 8f9cf46

Browse files
committed
Removed configuration from DefaultSettingsClient
1 parent 46fc13b commit 8f9cf46

4 files changed

Lines changed: 52 additions & 27 deletions

File tree

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,11 @@ public ConfigurationManager(
114114
SettingsManager.builder()
115115
.settingsClient(
116116
settingsClient == null
117-
? DefaultSettingsClient.builder().configuration(this.configuration).build()
117+
? DefaultSettingsClient.builder()
118+
.configServerUrl(this.configServerUrl)
119+
.settingsClientTimeoutInMillis(this.settingsClientTimeoutInMillis)
120+
.apiKey(this.apiKey)
121+
.build()
118122
: settingsClient)
119123
.storageProvider(this.storageProvider)
120124
.build();
@@ -185,8 +189,7 @@ private void addPropertyChangeListeners() {
185189
}
186190

187191
private void checkApiKeyIsValid() {
188-
if (configuration.getApiKey() != null
189-
&& configuration.getApiKey().length() >= API_KEY_MIN_LENGTH) {
192+
if (this.apiKey.get() != null && this.apiKey.get().length() >= API_KEY_MIN_LENGTH) {
190193
return;
191194
}
192195

src/main/java/com/exceptionless/exceptionlessclient/settings/DefaultSettingsClient.java

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.exceptionless.exceptionlessclient.settings;
22

3-
import com.exceptionless.exceptionlessclient.configuration.Configuration;
3+
import com.exceptionless.exceptionlessclient.configuration.ValueProvider;
44
import com.exceptionless.exceptionlessclient.utils.Utils;
55
import com.exceptionless.exceptionlessclient.utils.VisibleForTesting;
66
import com.fasterxml.jackson.core.type.TypeReference;
@@ -13,23 +13,33 @@
1313
import java.time.Duration;
1414

1515
public class DefaultSettingsClient implements SettingsClientIF {
16-
private final Configuration configuration;
17-
private final OkHttpClient httpClient;
16+
private final OkHttpClient defaultHttpClient;
17+
private final ValueProvider<Integer> settingsClientTimeoutInMillis;
18+
private final ValueProvider<String> configServerUrl;
19+
private final ValueProvider<String> apiKey;
1820

1921
@Builder
20-
public DefaultSettingsClient(Configuration configuration) {
21-
this.configuration = configuration;
22-
this.httpClient =
23-
new OkHttpClient()
24-
.newBuilder()
25-
.connectTimeout(Duration.ofMillis(configuration.getSettingsClientTimeoutInMillis()))
26-
.build();
22+
public DefaultSettingsClient(
23+
ValueProvider<Integer> settingsClientTimeoutInMillis,
24+
ValueProvider<String> configServerUrl,
25+
ValueProvider<String> apiKey) {
26+
this(
27+
new OkHttpClient().newBuilder().build(),
28+
settingsClientTimeoutInMillis,
29+
configServerUrl,
30+
apiKey);
2731
}
2832

2933
@VisibleForTesting
30-
DefaultSettingsClient(Configuration configuration, OkHttpClient httpClient) {
31-
this.configuration = configuration;
32-
this.httpClient = httpClient;
34+
DefaultSettingsClient(
35+
OkHttpClient defaultHttpClient,
36+
ValueProvider<Integer> settingsClientTimeoutInMillis,
37+
ValueProvider<String> configServerUrl,
38+
ValueProvider<String> apiKey) {
39+
this.defaultHttpClient = defaultHttpClient;
40+
this.settingsClientTimeoutInMillis = settingsClientTimeoutInMillis;
41+
this.configServerUrl = configServerUrl;
42+
this.apiKey = apiKey;
3343
}
3444

3545
@Override
@@ -40,11 +50,17 @@ public SettingsResponse getSettings(long version) {
4050
.url(
4151
String.format(
4252
"%s/api/v2/projects/config?v=%s&access_token=%s",
43-
configuration.getConfigServerUrl(), version, configuration.getApiKey()))
53+
configServerUrl.get(), version, apiKey.get()))
4454
.get()
4555
.build();
4656

47-
Response response = httpClient.newCall(request).execute();
57+
Response response =
58+
defaultHttpClient
59+
.newBuilder()
60+
.connectTimeout(Duration.ofMillis(settingsClientTimeoutInMillis.get()))
61+
.build()
62+
.newCall(request)
63+
.execute();
4864

4965
ResponseBody body = response.body();
5066
String bodyStr = body == null ? null : body.string();

src/test/java/com/exceptionless/exceptionlessclient/settings/DefaultSettingsClientTest.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
package com.exceptionless.exceptionlessclient.settings;
22

3-
import com.exceptionless.exceptionlessclient.TestFixtures;
4-
import com.exceptionless.exceptionlessclient.configuration.Configuration;
3+
import com.exceptionless.exceptionlessclient.configuration.ValueProvider;
54
import okhttp3.*;
65
import org.junit.jupiter.api.BeforeEach;
76
import org.junit.jupiter.api.Test;
87
import org.junit.jupiter.api.extension.ExtendWith;
98
import org.mockito.Mock;
9+
import org.mockito.Mockito;
1010
import org.mockito.junit.jupiter.MockitoExtension;
1111

1212
import java.io.IOException;
13+
import java.time.Duration;
1314
import java.util.Map;
1415

1516
import static org.assertj.core.api.Assertions.assertThat;
@@ -27,20 +28,24 @@ public class DefaultSettingsClientTest {
2728

2829
@BeforeEach
2930
public void setup() {
30-
Configuration configuration =
31-
TestFixtures.aDefaultConfiguration()
32-
.serverUrl("http://test-server-url")
33-
.apiKey("test-api-key")
34-
.settingsClientTimeoutInMillis(10)
35-
.build();
36-
settingsClient = new DefaultSettingsClient(configuration, httpClient);
31+
settingsClient =
32+
new DefaultSettingsClient(
33+
httpClient,
34+
ValueProvider.of(10),
35+
ValueProvider.of("http://test-server-url"),
36+
ValueProvider.of("test-api-key"));
3737
responseBuilder =
3838
new Response.Builder()
3939
.request(new Request.Builder().url("http://test-url").build())
4040
.protocol(Protocol.HTTP_2)
4141
.message("test-message")
4242
.body(ResponseBody.create("test-body", MediaType.get("text/plain")))
4343
.code(200);
44+
45+
OkHttpClient.Builder mockBuilder = Mockito.mock(OkHttpClient.Builder.class);
46+
doReturn(mockBuilder).when(httpClient).newBuilder();
47+
doReturn(mockBuilder).when(mockBuilder).connectTimeout(Duration.ofMillis(10));
48+
doReturn(httpClient).when(mockBuilder).build();
4449
}
4550

4651
@Test
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mock-maker-inline

0 commit comments

Comments
 (0)