Skip to content

Commit 2365d93

Browse files
author
Ajay Kannan
committed
---
yaml --- r: 4703 b: refs/heads/logging-alpha c: 959d67d h: refs/heads/master i: 4701: 821110d 4699: 04d1f7f 4695: f1fb2ee 4687: 1ba52a6 4671: f5afbde
1 parent 8142241 commit 2365d93

9 files changed

Lines changed: 41 additions & 36 deletions

File tree

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ refs/heads/compute-alpha: 969cba2627f1d53d352cc4a5ffe0879dacf65e6c
1212
refs/heads/dns-alpha: 2f90e7e338349287ace33375896907af0f032ca1
1313
refs/heads/dns-alpha-batch: 17442b07867021b85d0452f5f3eda29a3413288f
1414
refs/heads/gcs-nio: 283aeaf15efdcf3621eb6859f05e55ad7764375d
15-
refs/heads/logging-alpha: e0784699b1320f36b7df456666ea52e656f31d5b
15+
refs/heads/logging-alpha: 959d67d9f9f940b3db62b556076b2a90ba2fb263
1616
refs/tags/v0.1.0: a615317f7424ed58621b1f65d5c4d8cbbe8a6ed8
1717
refs/tags/v0.1.1: 7a7f6985fe465e9dd6a075af55493f42b4933be0
1818
refs/tags/v0.1.2: 3eb3fe866ba22487686048f45d927b8c8638ea3f

branches/logging-alpha/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/BaseDatastoreBatchWriter.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,10 +184,6 @@ protected Set<Key> toDelete() {
184184
return toDelete;
185185
}
186186

187-
protected int numAutoAllocatedIds() {
188-
return toAddAutoId.size();
189-
}
190-
191187
protected void deactivate() {
192188
active = false;
193189
}

branches/logging-alpha/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/BatchImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616

1717
package com.google.gcloud.datastore;
1818

19+
import java.util.ArrayList;
1920
import java.util.Iterator;
20-
import java.util.LinkedList;
2121
import java.util.List;
2222

2323

@@ -39,7 +39,7 @@ static class ResponseImpl implements Batch.Response {
3939
public List<Key> generatedKeys() {
4040
Iterator<com.google.datastore.v1beta3.MutationResult> results =
4141
response.getMutationResultsList().iterator();
42-
List<Key> generated = new LinkedList<Key>();
42+
List<Key> generated = new ArrayList<>(numAutoAllocatedIds);
4343
for (int i = 0; i < numAutoAllocatedIds; i++) {
4444
generated.add(Key.fromPb(results.next().getKey()));
4545
}
@@ -62,7 +62,7 @@ public Batch.Response submit() {
6262
requestPb.addAllMutations(mutationsPb);
6363
com.google.datastore.v1beta3.CommitResponse responsePb = datastore.commit(requestPb.build());
6464
deactivate();
65-
return new ResponseImpl(responsePb, numAutoAllocatedIds());
65+
return new ResponseImpl(responsePb, toAddAutoId().size());
6666
}
6767

6868
@Override

branches/logging-alpha/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/DatastoreImpl.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -176,33 +176,32 @@ public List<Entity> add(FullEntity<?>... entities) {
176176
return Collections.emptyList();
177177
}
178178
List<com.google.datastore.v1beta3.Mutation> mutationsPb = new ArrayList<>();
179-
Map<Key, Entity> completeEntities = new LinkedHashMap<>();
179+
Set<Entity> completeEntities = new LinkedHashSet<>();
180180
for (FullEntity<?> entity : entities) {
181181
Entity completeEntity = null;
182182
if (entity.key() instanceof Key) {
183183
completeEntity = Entity.convert((FullEntity<Key>) entity);
184184
}
185185
if (completeEntity != null) {
186-
if (completeEntities.put(completeEntity.key(), completeEntity) != null) {
186+
if (completeEntities.contains(completeEntity)) {
187187
throw DatastoreException.throwInvalidRequest(
188188
"Duplicate entity with the key %s", entity.key());
189189
}
190-
mutationsPb.add(com.google.datastore.v1beta3.Mutation.newBuilder()
191-
.setInsert(completeEntity.toPb()).build());
190+
completeEntities.add(completeEntity);
192191
} else {
193192
Preconditions.checkArgument(entity.hasKey(), "entity %s is missing a key", entity);
194-
mutationsPb.add(com.google.datastore.v1beta3.Mutation.newBuilder()
195-
.setInsert(entity.toPb()).build());
196193
}
194+
mutationsPb.add(com.google.datastore.v1beta3.Mutation.newBuilder()
195+
.setInsert(entity.toPb()).build());
197196
}
198197
com.google.datastore.v1beta3.CommitResponse commitResponse = commitMutation(mutationsPb);
199198
Iterator<com.google.datastore.v1beta3.MutationResult> mutationResults =
200199
commitResponse.getMutationResultsList().iterator();
200+
Iterator<Entity> completeEntitiesIt = completeEntities.iterator();
201201
ImmutableList.Builder<Entity> responseBuilder = ImmutableList.builder();
202202
for (FullEntity<?> entity : entities) {
203-
Entity completeEntity = completeEntities.get(entity.key());
204-
if (completeEntity != null) {
205-
responseBuilder.add(completeEntity);
203+
if (completeEntities.contains(entity)) {
204+
responseBuilder.add(completeEntitiesIt.next());
206205
mutationResults.next();
207206
} else {
208207
responseBuilder.add(

branches/logging-alpha/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/DatastoreOptions.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ private DatastoreOptions normalize() {
108108
.build();
109109
requestPb.addKeys(key);
110110
try {
111-
com.google.datastore.v1beta3.LookupResponse responsePb = datastoreRpc().lookup(requestPb.build());
111+
com.google.datastore.v1beta3.LookupResponse responsePb =
112+
datastoreRpc().lookup(requestPb.build());
112113
if (responsePb.getDeferredCount() > 0) {
113114
key = responsePb.getDeferred(0);
114115
} else {

branches/logging-alpha/gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/TransactionImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818

1919
import com.google.protobuf.ByteString;
2020

21+
import java.util.ArrayList;
2122
import java.util.Iterator;
22-
import java.util.LinkedList;
2323
import java.util.List;
2424

2525
final class TransactionImpl extends BaseDatastoreBatchWriter implements Transaction {
@@ -42,7 +42,7 @@ static class ResponseImpl implements Transaction.Response {
4242
public List<Key> generatedKeys() {
4343
Iterator<com.google.datastore.v1beta3.MutationResult> results =
4444
response.getMutationResultsList().iterator();
45-
List<Key> generated = new LinkedList<Key>();
45+
List<Key> generated = new ArrayList<>(numAutoAllocatedIds);
4646
for (int i = 0; i < numAutoAllocatedIds; i++) {
4747
generated.add(Key.fromPb(results.next().getKey()));
4848
}
@@ -98,7 +98,7 @@ public Transaction.Response commit() {
9898
requestPb.addAllMutations(mutationsPb);
9999
com.google.datastore.v1beta3.CommitResponse responsePb = datastore.commit(requestPb.build());
100100
deactivate();
101-
return new ResponseImpl(responsePb, numAutoAllocatedIds());
101+
return new ResponseImpl(responsePb, toAddAutoId().size());
102102
}
103103

104104
@Override

branches/logging-alpha/gcloud-java-datastore/src/main/java/com/google/gcloud/spi/DefaultDatastoreRpc.java

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
import com.google.gcloud.datastore.DatastoreOptions;
2121
import com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException.Reason;
2222

23+
import java.net.InetAddress;
24+
import java.net.MalformedURLException;
25+
import java.net.UnknownHostException;
26+
import java.net.URL;
2327
import java.util.HashMap;
2428
import java.util.Map;
2529

@@ -42,20 +46,26 @@ public class DefaultDatastoreRpc implements DatastoreRpc {
4246
}
4347

4448
public DefaultDatastoreRpc(DatastoreOptions options) {
45-
if (options.host().contains("localhost")) {
46-
client = com.google.datastore.v1beta3.client.DatastoreFactory.get().create(
47-
new com.google.datastore.v1beta3.client.DatastoreOptions.Builder()
48-
.projectId(options.projectId())
49-
.localHost(options.host())
50-
.initializer(options.httpRequestInitializer())
51-
.build());
52-
} else {
53-
client = com.google.datastore.v1beta3.client.DatastoreFactory.get().create(
54-
new com.google.datastore.v1beta3.client.DatastoreOptions.Builder()
55-
.projectId(options.projectId())
56-
.initializer(options.httpRequestInitializer())
57-
.build());
49+
com.google.datastore.v1beta3.client.DatastoreOptions.Builder clientBuilder =
50+
new com.google.datastore.v1beta3.client.DatastoreOptions.Builder()
51+
.projectId(options.projectId())
52+
.initializer(options.httpRequestInitializer());
53+
if (options.host() != null) {
54+
try {
55+
String normalizedHost = options.host();
56+
if (!normalizedHost.startsWith("http")) {
57+
normalizedHost = "http://" + normalizedHost;
58+
}
59+
InetAddress hostAddr = InetAddress.getByName(new URL(normalizedHost).getHost());
60+
if (hostAddr.isAnyLocalAddress() || hostAddr.isLoopbackAddress()) {
61+
clientBuilder = clientBuilder.localHost(options.host());
62+
}
63+
} catch (UnknownHostException | MalformedURLException e) {
64+
// ignore
65+
}
5866
}
67+
client = com.google.datastore.v1beta3.client.DatastoreFactory.get()
68+
.create(clientBuilder.build());
5969
}
6070

6171
private static DatastoreRpcException translate(

branches/logging-alpha/gcloud-java-datastore/src/test/java/com/google/gcloud/datastore/DatastoreOptionsTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import static org.junit.Assert.assertEquals;
2020
import static org.junit.Assert.assertFalse;
21-
import static org.junit.Assert.assertNull;
2221
import static org.junit.Assert.assertSame;
2322
import static org.junit.Assert.assertTrue;
2423

branches/logging-alpha/gcloud-java-datastore/src/test/java/com/google/gcloud/datastore/LocalGcdHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ public static void main(String... args) throws IOException, InterruptedException
309309
public static boolean isActive(String projectId) {
310310
try {
311311
StringBuilder urlBuilder = new StringBuilder("http://localhost:").append(PORT);
312-
urlBuilder.append("/datastore/v1beta3/datasets/").append(projectId).append(":lookup");
312+
urlBuilder.append("/datastore/v1beta3/projects/").append(projectId).append(":lookup");
313313
URL url = new URL(urlBuilder.toString());
314314
try (BufferedReader reader =
315315
new BufferedReader(new InputStreamReader(url.openStream(), UTF_8))) {

0 commit comments

Comments
 (0)