Skip to content

feat: add some docs, use only setCredentials in DatastoreOptions #1467

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 30, 2024
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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ If you are using Maven without the BOM, add this to your dependencies:
If you are using Gradle 5.x or later, add this to your dependencies:

```Groovy
implementation platform('com.google.cloud:libraries-bom:26.39.0')
implementation platform('com.google.cloud:libraries-bom:26.40.0')

implementation 'com.google.cloud:google-cloud-datastore'
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import static com.google.cloud.datastore.Validator.validateNamespace;

import com.google.api.core.BetaApi;
import com.google.api.gax.core.CredentialsProvider;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
import com.google.api.gax.rpc.TransportChannelProvider;
import com.google.cloud.ServiceDefaults;
Expand Down Expand Up @@ -51,7 +50,6 @@ public class DatastoreOptions extends ServiceOptions<Datastore, DatastoreOptions
public static final String LOCAL_HOST_ENV_VAR = "DATASTORE_EMULATOR_HOST";

private transient TransportChannelProvider channelProvider = null;
private transient CredentialsProvider credentialsProvider = null;

private final String namespace;
private final String databaseId;
Expand Down Expand Up @@ -89,7 +87,6 @@ public static class Builder extends ServiceOptions.Builder<Datastore, DatastoreO
private String namespace;
private String databaseId;
private TransportChannelProvider channelProvider = null;
private CredentialsProvider credentialsProvider = null;
private String host;
private TransportOptions transportOptions;

Expand All @@ -100,7 +97,6 @@ private Builder(DatastoreOptions options) {
this.namespace = options.namespace;
this.databaseId = options.databaseId;
this.channelProvider = validateChannelProvider(options.channelProvider);
this.credentialsProvider = options.credentialsProvider;
}

@Override
Expand All @@ -113,6 +109,9 @@ public Builder setTransportOptions(TransportOptions transportOptions) {
return super.setTransportOptions(transportOptions);
}

/**
* Sets the transport to gRPC. Note this functionality is experimental and subject to change.
*/
@BetaApi
public Builder setTransportOptions(GrpcTransportOptions transportOptions) {
this.transportOptions = transportOptions;
Expand All @@ -128,6 +127,11 @@ public Builder setHost(String host) {
/**
* Sets the {@link TransportChannelProvider} to use with this Datastore client.
*
* <p>This is only compatible with clients using a gRPC transport (see {@code
* DatastoreOptions#setTransportOptions(GrpcTransportOptions)} for more details).
*
* <p>This functionality is experimental and subject to change.
*
* @param channelProvider A InstantiatingGrpcChannelProvider object that defines the transport
* provider for this client.
*/
Expand All @@ -137,18 +141,6 @@ public Builder setChannelProvider(TransportChannelProvider channelProvider) {
return this;
}

/**
* Sets the {@link CredentialsProvider} to use with this Datastore client.
*
* @param credentialsProvider A CredentialsProvider object that defines the credential provider
* for this client.
*/
@BetaApi
public Builder setCredentialsProvider(CredentialsProvider credentialsProvider) {
this.credentialsProvider = credentialsProvider;
return this;
}

@Override
public DatastoreOptions build() {
if (this.host == null && this.transportOptions instanceof GrpcTransportOptions) {
Expand Down Expand Up @@ -183,8 +175,7 @@ private DatastoreOptions(Builder builder) {
namespace = MoreObjects.firstNonNull(builder.namespace, defaultNamespace());
databaseId = MoreObjects.firstNonNull(builder.databaseId, DEFAULT_DATABASE_ID);

if (getTransportOptions() instanceof HttpTransportOptions
&& (builder.channelProvider != null || builder.credentialsProvider != null)) {
if (getTransportOptions() instanceof HttpTransportOptions && builder.channelProvider != null) {
throw new IllegalArgumentException(
"Only gRPC transport allows setting of channel provider or credentials provider");
} else if (getTransportOptions() instanceof GrpcTransportOptions) {
Expand All @@ -193,18 +184,9 @@ private DatastoreOptions(Builder builder) {
? builder.channelProvider
: GrpcTransportOptions.setUpChannelProvider(
DatastoreSettings.defaultGrpcTransportProviderBuilder(), this);

this.credentialsProvider =
builder.credentialsProvider != null
? builder.credentialsProvider
: GrpcTransportOptions.setUpCredentialsProvider(this);
}
}

public CredentialsProvider getCredentialsProvider() {
return credentialsProvider;
}

public TransportChannelProvider getTransportChannelProvider() {
return channelProvider;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import com.google.cloud.datastore.v1.DatastoreSettings;
import com.google.cloud.datastore.v1.stub.DatastoreStubSettings;
import com.google.cloud.datastore.v1.stub.GrpcDatastoreStub;
import com.google.cloud.grpc.GrpcTransportOptions;
import com.google.common.base.Strings;
import com.google.datastore.v1.AllocateIdsRequest;
import com.google.datastore.v1.AllocateIdsResponse;
Expand Down Expand Up @@ -169,7 +170,8 @@ private ClientContext getClientContext(DatastoreOptions datastoreOptions) throws

DatastoreSettingsBuilder settingsBuilder =
new DatastoreSettingsBuilder(DatastoreSettings.newBuilder().build());
settingsBuilder.setCredentialsProvider(datastoreOptions.getCredentialsProvider());
settingsBuilder.setCredentialsProvider(
GrpcTransportOptions.setUpCredentialsProvider(datastoreOptions));
settingsBuilder.setTransportChannelProvider(datastoreOptions.getTransportChannelProvider());
settingsBuilder.setInternalHeaderProvider(internalHeaderProvider);
settingsBuilder.setHeaderProvider(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;

import com.google.api.gax.core.NoCredentialsProvider;
import com.google.api.gax.grpc.ChannelPoolSettings;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
import com.google.cloud.NoCredentials;
Expand Down Expand Up @@ -92,7 +91,6 @@ public void testDatastore() {

@Test
public void testCustomChannelAndCredentials() {
NoCredentialsProvider noCredentialsProvider = NoCredentialsProvider.create();
InstantiatingGrpcChannelProvider channelProvider =
DatastoreSettings.defaultGrpcTransportProviderBuilder()
.setChannelPoolSettings(
Expand All @@ -108,11 +106,10 @@ public void testCustomChannelAndCredentials() {
.setDatabaseId(DATABASE_ID)
.setTransportOptions(GrpcTransportOptions.newBuilder().build())
.setChannelProvider(channelProvider)
.setCredentialsProvider(noCredentialsProvider)
.setCredentials(NoCredentials.getInstance())
.setHost("http://localhost:" + PORT)
.build();
assertEquals(datastoreOptions.getTransportChannelProvider(), channelProvider);
assertEquals(datastoreOptions.getCredentialsProvider(), noCredentialsProvider);
}

@Test
Expand All @@ -131,7 +128,7 @@ public void testInvalidConfigForHttp() {
.setMaxChannelCount(20)
.build())
.build())
.setCredentialsProvider(NoCredentialsProvider.create())
.setCredentials(NoCredentials.getInstance())
.setHost("http://localhost:" + PORT);
Assert.assertThrows(IllegalArgumentException.class, options::build);
}
Expand All @@ -146,11 +143,9 @@ public void testTransport() {
DatastoreOptions.newBuilder()
.setTransportOptions(GrpcTransportOptions.newBuilder().build())
.setProjectId(PROJECT_ID)
.setCredentialsProvider(NoCredentialsProvider.create())
.setCredentials(NoCredentials.getInstance())
.build();
assertThat(grpcTransportOptions.getTransportOptions()).isInstanceOf(GrpcTransportOptions.class);
assertThat(grpcTransportOptions.getCredentialsProvider())
.isInstanceOf(NoCredentialsProvider.class);
assertThat(grpcTransportOptions.getTransportChannelProvider())
.isInstanceOf(InstantiatingGrpcChannelProvider.class);
}
Expand All @@ -161,7 +156,7 @@ public void testHostWithGrpcAndHttp() {
DatastoreOptions.newBuilder()
.setTransportOptions(GrpcTransportOptions.newBuilder().build())
.setProjectId(PROJECT_ID)
.setCredentialsProvider(NoCredentialsProvider.create())
.setCredentials(NoCredentials.getInstance())
.build();
assertThat(grpcTransportOptions.getHost()).isEqualTo(DatastoreSettings.getDefaultEndpoint());
assertThat(grpcTransportOptions.getHost()).isEqualTo("datastore.googleapis.com:443");
Expand All @@ -172,7 +167,7 @@ public void testHostWithGrpcAndHttp() {
.setTransportOptions(GrpcTransportOptions.newBuilder().build())
.setHost(customHost)
.setProjectId(PROJECT_ID)
.setCredentialsProvider(NoCredentialsProvider.create())
.setCredentials(NoCredentials.getInstance())
.build();
assertThat(grpcTransportOptionsCustomHost.getHost()).isEqualTo(customHost);

Expand Down
Loading