Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions src/main/java/com/microsoft/graph/httpcore/HttpClients.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ private HttpClients() {
* @return OkHttpClient.Builder() custom builder for developer to add its own interceptors to it
*/
public static Builder custom() {
return new OkHttpClient.Builder();
return new OkHttpClient.Builder().addInterceptor(new TelemetryHandler());
}

/**
Expand All @@ -43,9 +43,11 @@ public static OkHttpClient createDefault(ICoreAuthenticationProvider auth) {
*/
public static OkHttpClient createFromInterceptors(Interceptor[] interceptors) {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
for(Interceptor interceptor : interceptors) {
builder.addInterceptor(interceptor);
}
if(interceptors != null)
for(Interceptor interceptor : interceptors) {
if(interceptor != null)
builder.addInterceptor(interceptor);
}
builder.addInterceptor(new TelemetryHandler());
return builder.build();
}
Expand Down
14 changes: 7 additions & 7 deletions src/main/java/com/microsoft/graph/httpcore/TelemetryHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ public Response intercept(Chain chain) throws IOException {
Request.Builder telemetryAddedBuilder = request.newBuilder();

TelemetryOptions telemetryOptions = request.tag(TelemetryOptions.class);
if(telemetryOptions == null)
telemetryOptions = new TelemetryOptions();

if(telemetryOptions != null) {
String featureUsage = "(featureUsage=" + telemetryOptions.getFeatureUsage() + ")";
String sdkversion_value = GRAPH_VERSION_PREFIX + "/" + VERSION + " " + featureUsage;
telemetryAddedBuilder.addHeader(SDK_VERSION, sdkversion_value);
String featureUsage = "(featureUsage=" + telemetryOptions.getFeatureUsage() + ")";
String sdkversion_value = GRAPH_VERSION_PREFIX + "/" + VERSION + " " + featureUsage;
telemetryAddedBuilder.addHeader(SDK_VERSION, sdkversion_value);

if(request.header(CLIENT_REQUEST_ID) == null) {
telemetryAddedBuilder.addHeader(CLIENT_REQUEST_ID, telemetryOptions.getClientRequestId());
}
if(request.header(CLIENT_REQUEST_ID) == null) {
telemetryAddedBuilder.addHeader(CLIENT_REQUEST_ID, telemetryOptions.getClientRequestId());
}

return chain.proceed(telemetryAddedBuilder.build());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,17 @@ public Request authenticateRequest(Request request) {
assertNotNull(response);
assertTrue(response.request().header("SdkVersion").contains(expectedHeader));
}

@Test
public void arrayInterceptorEmptyTest() throws IOException {
Interceptor[] interceptors = null;
OkHttpClient client = HttpClients.createFromInterceptors(interceptors);
String expectedHeader = TelemetryHandler.SDK_VERSION + TelemetryHandler.GRAPH_VERSION_PREFIX +"/"
+TelemetryHandler.VERSION;
Request request = new Request.Builder().url("https://graph.microsoft.com/v1.0/users/").build();
Response response = client.newCall(request).execute();
assertNotNull(response);
assertTrue(response.request().header("SdkVersion").contains(expectedHeader));
}

}