Skip to content

Commit afc4aaf

Browse files
committed
Remove usgae of deprecated service stub API
1 parent d3abd2a commit afc4aaf

File tree

4 files changed

+54
-63
lines changed

4 files changed

+54
-63
lines changed

exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/InternalTraceExporter.java

Lines changed: 26 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import com.google.auth.oauth2.GoogleCredentials;
2727
import com.google.cloud.trace.v2.TraceServiceClient;
2828
import com.google.cloud.trace.v2.TraceServiceSettings;
29-
import com.google.cloud.trace.v2.stub.TraceServiceStub;
3029
import com.google.common.annotations.VisibleForTesting;
3130
import com.google.common.collect.ImmutableMap;
3231
import com.google.devtools.cloudtrace.v2.AttributeValue;
@@ -69,46 +68,36 @@ static InternalTraceExporter createWithClient(
6968

7069
static SpanExporter createWithConfiguration(TraceConfiguration configuration) throws IOException {
7170
String projectId = configuration.getProjectId();
72-
TraceServiceStub stub = configuration.getTraceServiceStub();
71+
TraceServiceSettings.Builder builder = TraceServiceSettings.newBuilder();
7372

74-
// TODO: Remove stub - tracked in issue #198
75-
if (stub == null) {
76-
TraceServiceSettings.Builder builder = TraceServiceSettings.newBuilder();
77-
78-
// We only use the batchWriteSpans API in this exporter.
79-
builder
80-
.batchWriteSpansSettings()
81-
.setSimpleTimeoutNoRetries(
82-
org.threeten.bp.Duration.ofMillis(configuration.getDeadline().toMillis()));
83-
// For testing, we need to hack around our gRPC config.
84-
if (configuration.getInsecureEndpoint()) {
85-
builder.setCredentialsProvider(NoCredentialsProvider.create());
86-
builder.setTransportChannelProvider(
87-
FixedTransportChannelProvider.create(
88-
GrpcTransportChannel.create(
89-
ManagedChannelBuilder.forTarget(configuration.getTraceServiceEndpoint())
90-
.usePlaintext()
91-
.build())));
92-
} else {
93-
Credentials credentials =
94-
configuration.getCredentials() == null
95-
? GoogleCredentials.getApplicationDefault()
96-
: configuration.getCredentials();
97-
builder.setCredentialsProvider(
98-
FixedCredentialsProvider.create(checkNotNull(credentials, "credentials")));
99-
builder.setEndpoint(configuration.getTraceServiceEndpoint());
100-
builder.setHeaderProvider(HEADER_PROVIDER);
101-
}
102-
103-
return new InternalTraceExporter(
104-
projectId,
105-
new CloudTraceClientImpl(TraceServiceClient.create(builder.build())),
106-
configuration.getAttributeMapping(),
107-
configuration.getFixedAttributes());
73+
// We only use the batchWriteSpans API in this exporter.
74+
builder
75+
.batchWriteSpansSettings()
76+
.setSimpleTimeoutNoRetries(
77+
org.threeten.bp.Duration.ofMillis(configuration.getDeadline().toMillis()));
78+
// For testing, we need to hack around our gRPC config.
79+
if (configuration.getInsecureEndpoint()) {
80+
builder.setCredentialsProvider(NoCredentialsProvider.create());
81+
builder.setTransportChannelProvider(
82+
FixedTransportChannelProvider.create(
83+
GrpcTransportChannel.create(
84+
ManagedChannelBuilder.forTarget(configuration.getTraceServiceEndpoint())
85+
.usePlaintext()
86+
.build())));
87+
} else {
88+
Credentials credentials =
89+
configuration.getCredentials() == null
90+
? GoogleCredentials.getApplicationDefault()
91+
: configuration.getCredentials();
92+
builder.setCredentialsProvider(
93+
FixedCredentialsProvider.create(checkNotNull(credentials, "credentials")));
94+
builder.setEndpoint(configuration.getTraceServiceEndpoint());
95+
builder.setHeaderProvider(HEADER_PROVIDER);
10896
}
97+
10998
return new InternalTraceExporter(
11099
projectId,
111-
new CloudTraceClientImpl(TraceServiceClient.create(stub)),
100+
new CloudTraceClientImpl(TraceServiceClient.create(builder.build())),
112101
configuration.getAttributeMapping(),
113102
configuration.getFixedAttributes());
114103
}

exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/TraceConfiguration.java

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import com.google.auth.Credentials;
2020
import com.google.auto.value.AutoValue;
2121
import com.google.cloud.ServiceOptions;
22-
import com.google.cloud.trace.v2.stub.TraceServiceStub;
2322
import com.google.cloud.trace.v2.stub.TraceServiceStubSettings;
2423
import com.google.common.annotations.VisibleForTesting;
2524
import com.google.common.base.Preconditions;
@@ -89,15 +88,6 @@ public final String getProjectId() {
8988
return getProjectIdSupplier().get();
9089
}
9190

92-
/**
93-
* Returns a TraceServiceStub instance used to make RPC calls.
94-
*
95-
* @return the trace service stub.
96-
*/
97-
@Nullable
98-
@Deprecated
99-
public abstract TraceServiceStub getTraceServiceStub();
100-
10191
/**
10292
* Returns the endpoint where to write traces.
10393
*
@@ -186,16 +176,6 @@ public final Builder setProjectId(String projectId) {
186176
return this;
187177
}
188178

189-
/**
190-
* Sets the trace service stub used to send gRPC calls.
191-
*
192-
* @deprecated("Use setTraceServiceEndpoint")
193-
* @param traceServiceStub the {@code TraceServiceStub}.
194-
* @return this.
195-
*/
196-
@Deprecated
197-
public abstract Builder setTraceServiceStub(TraceServiceStub traceServiceStub);
198-
199179
/** Sets the endpoint where to write traces. Defaults to tracing.googleapis.com:443. */
200180
public abstract Builder setTraceServiceEndpoint(String endpoint);
201181

exporters/trace/src/test/java/com/google/cloud/opentelemetry/trace/TraceConfigurationTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package com.google.cloud.opentelemetry.trace;
1717

1818
import static org.junit.Assert.assertEquals;
19+
import static org.junit.Assert.assertFalse;
1920
import static org.junit.Assert.assertNotNull;
2021
import static org.junit.Assert.assertNull;
2122
import static org.junit.Assert.assertThrows;
@@ -25,6 +26,7 @@
2526
import com.google.auth.oauth2.AccessToken;
2627
import com.google.auth.oauth2.GoogleCredentials;
2728
import com.google.cloud.ServiceOptions;
29+
import com.google.cloud.trace.v2.TraceServiceSettings;
2830
import com.google.devtools.cloudtrace.v2.AttributeValue;
2931
import java.time.Duration;
3032
import java.util.Collections;
@@ -53,7 +55,9 @@ public void defaultConfiguration() {
5355

5456
assertNull(configuration.getCredentials());
5557
assertNotNull(configuration.getProjectId());
56-
assertNull(configuration.getTraceServiceStub());
58+
assertFalse(configuration.getInsecureEndpoint());
59+
assertEquals(
60+
configuration.getTraceServiceEndpoint(), TraceServiceSettings.getDefaultEndpoint());
5761
assertTrue(configuration.getFixedAttributes().isEmpty());
5862
assertEquals(TraceConfiguration.DEFAULT_DEADLINE, configuration.getDeadline());
5963
}

exporters/trace/src/test/java/com/google/cloud/opentelemetry/trace/TraceExporterTest.java

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
import static org.junit.Assert.assertEquals;
1919
import static org.junit.Assert.assertNotNull;
2020

21+
import com.google.auth.oauth2.AccessToken;
2122
import com.google.auth.oauth2.GoogleCredentials;
2223
import com.google.cloud.ServiceOptions;
2324
import com.google.cloud.trace.v2.TraceServiceClient;
2425
import com.google.cloud.trace.v2.TraceServiceSettings;
25-
import com.google.cloud.trace.v2.stub.TraceServiceStub;
2626
import com.google.devtools.cloudtrace.v2.ProjectName;
2727
import io.opentelemetry.api.GlobalOpenTelemetry;
2828
import io.opentelemetry.sdk.OpenTelemetrySdk;
@@ -33,6 +33,7 @@
3333
import io.opentelemetry.sdk.trace.export.SpanExporter;
3434
import java.io.IOException;
3535
import java.util.Collections;
36+
import java.util.Date;
3637
import org.junit.After;
3738
import org.junit.Test;
3839
import org.junit.runner.RunWith;
@@ -45,26 +46,42 @@
4546
public class TraceExporterTest {
4647

4748
private static final String PROJECT_ID = "test-id";
49+
private static final String FAKE_ENDPOINT = "fake.endpoint.com:443";
50+
private static final GoogleCredentials FAKE_CREDENTIAL =
51+
GoogleCredentials.newBuilder().setAccessToken(new AccessToken("fake", new Date(100))).build();
52+
4853
@Mock private TraceServiceClient mockedTraceServiceClient;
49-
@Mock private TraceServiceStub mockedTraceServiceStub;
5054

5155
@After
5256
public void tearDown() {
5357
GlobalOpenTelemetry.resetForTest();
5458
}
5559

60+
@Test
61+
public void testCreateWithConfigurationSucceeds() {
62+
TraceConfiguration configuration =
63+
TraceConfiguration.builder()
64+
.setCredentials(FAKE_CREDENTIAL)
65+
.setProjectId(PROJECT_ID)
66+
.setTraceServiceEndpoint(FAKE_ENDPOINT)
67+
.build();
68+
SpanExporter exporter = TraceExporter.createWithConfiguration(configuration);
69+
assertNotNull(exporter);
70+
}
71+
5672
@SuppressWarnings("ResultOfMethodCallIgnored")
5773
@Test
5874
public void verifyExporterWorksWithConfiguration() {
5975
try (MockedStatic<TraceServiceClient> mockedTraceServiceClient =
6076
Mockito.mockStatic(TraceServiceClient.class)) {
6177
mockedTraceServiceClient
62-
.when(() -> TraceServiceClient.create(Mockito.eq(mockedTraceServiceStub)))
78+
.when(() -> TraceServiceClient.create(Mockito.any(TraceServiceSettings.class)))
6379
.thenReturn(this.mockedTraceServiceClient);
6480

6581
TraceConfiguration configuration =
6682
TraceConfiguration.builder()
67-
.setTraceServiceStub(mockedTraceServiceStub)
83+
.setCredentials(FAKE_CREDENTIAL)
84+
.setTraceServiceEndpoint(FAKE_ENDPOINT)
6885
.setProjectId(PROJECT_ID)
6986
.build();
7087
SpanExporter exporter = TraceExporter.createWithConfiguration(configuration);
@@ -73,7 +90,8 @@ public void verifyExporterWorksWithConfiguration() {
7390
simulateExport(exporter);
7491

7592
mockedTraceServiceClient.verify(
76-
() -> TraceServiceClient.create(Mockito.eq(mockedTraceServiceStub)));
93+
Mockito.times(1),
94+
() -> TraceServiceClient.create(Mockito.any(TraceServiceSettings.class)));
7795
Mockito.verify(this.mockedTraceServiceClient)
7896
.batchWriteSpans((ProjectName) Mockito.any(), Mockito.anyList());
7997
}

0 commit comments

Comments
 (0)