|
19 | 19 |
|
20 | 20 | import com.google.api.client.auth.oauth2.Credential; |
21 | 21 | import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; |
| 22 | +import com.google.api.gax.grpc.ChannelPoolSettings; |
| 23 | +import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; |
22 | 24 | import com.google.cloud.datastore.*; |
23 | 25 | import com.google.cloud.datastore.Entity; |
| 26 | +import com.google.cloud.datastore.v1.DatastoreSettings; |
| 27 | +import com.google.cloud.grpc.GrpcTransportOptions; |
| 28 | +import com.google.datastore.v1.*; |
24 | 29 | import com.google.datastore.v1.ReadOptions.ReadConsistency; |
25 | 30 | import com.google.datastore.v1.client.DatastoreHelper; |
| 31 | +import com.google.datastore.v1.Value; |
26 | 32 | import com.google.cloud.datastore.Datastore; |
27 | 33 | import com.google.cloud.datastore.DatastoreOptions; |
28 | 34 | import com.google.cloud.opentelemetry.trace.TraceExporter; |
@@ -133,6 +139,14 @@ public void init() throws DBException { |
133 | 139 | } |
134 | 140 | String datasetId = getProperties().getProperty( |
135 | 141 | "googledatastore.datasetId", null); |
| 142 | + |
| 143 | + boolean usegRPC = Boolean.parseBoolean(getProperties().getProperty( |
| 144 | + "googledatastore.usegRPC", "true")); |
| 145 | + logger.info("Using gRPC transport:" + usegRPC); |
| 146 | + boolean useChannelProvider = Boolean.parseBoolean(getProperties().getProperty( |
| 147 | + "googledatastore.useChannelProvider", "true")); |
| 148 | + logger.info("Using gRPC ChannelProvider:" + useChannelProvider); |
| 149 | + |
136 | 150 | String privateKeyFile = getProperties().getProperty( |
137 | 151 | "googledatastore.privateKeyFile", null); |
138 | 152 | String serviceAccountEmail = getProperties().getProperty( |
@@ -214,6 +228,17 @@ public void init() throws DBException { |
214 | 228 | datastoreOptionsBuilder.setDatabaseId(datasetId); |
215 | 229 | } |
216 | 230 |
|
| 231 | + if (usegRPC) { |
| 232 | + if (useChannelProvider) { |
| 233 | + InstantiatingGrpcChannelProvider channelProvider = DatastoreSettings |
| 234 | + .defaultGrpcTransportProviderBuilder() |
| 235 | + .setChannelPoolSettings(ChannelPoolSettings.builder() |
| 236 | + .build()).build(); |
| 237 | + datastoreOptionsBuilder.setChannelProvider(channelProvider); |
| 238 | + } |
| 239 | + datastoreOptionsBuilder.setTransportOptions(GrpcTransportOptions.newBuilder().build()); |
| 240 | + } |
| 241 | + |
217 | 242 | DatastoreOptions datastoreOptions = datastoreOptionsBuilder.build(); |
218 | 243 | datastore = datastoreOptions.getService(); |
219 | 244 | } catch (GeneralSecurityException exception) { |
|
0 commit comments