{
- private static final long serialVersionUID = 5488451194542425391L;
+ private static final long serialVersionUID = 6217728277947673577L;
/**
* A {@code ProjectionEntityQuery} builder for queries that return {@link ProjectionEntity}
diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/Query.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/Query.java
index eb33c02b107b..a2396bad0e78 100644
--- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/Query.java
+++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/Query.java
@@ -21,26 +21,24 @@
import com.google.common.base.MoreObjects;
import com.google.common.base.MoreObjects.ToStringHelper;
import com.google.common.collect.Maps;
-import com.google.protobuf.GeneratedMessage;
-import com.google.protobuf.InvalidProtocolBufferException;
+import java.io.Serializable;
import java.util.Map;
-
/**
* A Google Cloud Datastore query.
* For usage examples see {@link GqlQuery} and {@link StructuredQuery}.
*
- * Note that queries require proper indexing. See
+ * Note that queries require proper indexing. See
*
* Cloud Datastore Index Configuration for help configuring indexes.
*
* @param the type of the values returned by this query.
* @see Datastore Queries
*/
-public abstract class Query extends Serializable {
+public abstract class Query implements Serializable {
- private static final long serialVersionUID = -2748141759901313101L;
+ private static final long serialVersionUID = 7967659059395653941L;
private final ResultType resultType;
private final String namespace;
@@ -51,7 +49,7 @@ public abstract class Query extends Serializable {
* PROJECTION_ENTITY: A projection entity, represented by {@link ProjectionEntity}.
* KEY: An entity's {@link Key}.
*/
- public abstract static class ResultType implements java.io.Serializable {
+ public abstract static class ResultType implements Serializable {
private static final long serialVersionUID = 2104157695425806623L;
private static final Map>
@@ -173,23 +171,10 @@ public String namespace() {
return namespace;
}
- @Override
- public String toString() {
- ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
- toStringHelper.add("type", resultType);
- toStringHelper.add("namespace", namespace);
- toStringHelper.add("queryPb", super.toString());
- return toStringHelper.toString();
- }
-
- @Override
- Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException {
- return fromPb(resultType, namespace, bytesPb);
+ ToStringHelper toStringHelper() {
+ return MoreObjects.toStringHelper(this).add("type", resultType).add("namespace", namespace);
}
- abstract Object fromPb(ResultType resultType, String namespace, byte[] bytesPb)
- throws InvalidProtocolBufferException;
-
abstract void populatePb(com.google.datastore.v1.RunQueryRequest.Builder requestPb);
abstract Query nextQuery(com.google.datastore.v1.RunQueryResponse responsePb);
diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/RawValue.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/RawValue.java
index f02f32eb3e73..35510df76d10 100644
--- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/RawValue.java
+++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/RawValue.java
@@ -18,12 +18,12 @@
public final class RawValue extends Value {
- private static final long serialVersionUID = -3359604598651897941L;
+ private static final long serialVersionUID = 6615860024753061102L;
static final BaseMarshaller MARSHALLER =
new BaseMarshaller() {
- private static final long serialVersionUID = 5320642719486106244L;
+ private static final long serialVersionUID = -5724906360924425548L;
@Override
public Builder newBuilder(com.google.datastore.v1.Value value) {
diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/Serializable.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/Serializable.java
deleted file mode 100644
index 2e305935f32e..000000000000
--- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/Serializable.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright 2015 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.google.cloud.datastore;
-
-import com.google.protobuf.GeneratedMessage;
-import com.google.protobuf.InvalidProtocolBufferException;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.ObjectStreamException;
-import java.io.StreamCorruptedException;
-
-abstract class Serializable implements java.io.Serializable {
-
- private static final long serialVersionUID = -5565522710061949199L;
-
- private transient byte[] bytesPb; // only for deserialization
-
- @Override
- public String toString() {
- return toPb().toString();
- }
-
- private void writeObject(ObjectOutputStream output) throws IOException {
- output.defaultWriteObject();
- output.writeObject(toPb().toByteArray());
- }
-
- private void readObject(ObjectInputStream input) throws IOException, ClassNotFoundException {
- input.defaultReadObject();
- bytesPb = (byte[]) input.readObject();
- }
-
- Object readResolve() throws ObjectStreamException {
- try {
- return fromPb(bytesPb);
- } catch (InvalidProtocolBufferException ex) {
- StreamCorruptedException sce = new StreamCorruptedException("Failed to create object");
- sce.initCause(ex);
- throw sce;
- } finally {
- bytesPb = null;
- }
- }
-
- abstract M toPb();
-
- abstract Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException;
-}
diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/StringValue.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/StringValue.java
index e9d43d11a662..bb90aada37f3 100644
--- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/StringValue.java
+++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/StringValue.java
@@ -20,12 +20,12 @@
public final class StringValue extends Value {
- private static final long serialVersionUID = -3105699707394545523L;
+ private static final long serialVersionUID = -8709280401468276732L;
static final BaseMarshaller MARSHALLER =
new BaseMarshaller() {
- private static final long serialVersionUID = -359610204134164436L;
+ private static final long serialVersionUID = -635109599283869091L;
@Override
public int getProtoFieldId() {
diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/StructuredQuery.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/StructuredQuery.java
index eb9629a8e6fb..6d3c6fd19e83 100644
--- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/StructuredQuery.java
+++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/StructuredQuery.java
@@ -29,7 +29,6 @@
import com.google.common.base.MoreObjects.ToStringHelper;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
-import com.google.protobuf.InvalidProtocolBufferException;
import java.io.Serializable;
import java.util.Arrays;
@@ -85,15 +84,15 @@ public abstract class StructuredQuery extends Query {
private static final long serialVersionUID = 546838955624019594L;
static final String KEY_PROPERTY_NAME = "__key__";
- private final transient String kind;
+ private final String kind;
private final ImmutableList projection;
- private final transient Filter filter;
+ private final Filter filter;
private final ImmutableList distinctOn;
- private final transient ImmutableList orderBy;
- private final transient Cursor startCursor;
- private final transient Cursor endCursor;
- private final transient int offset;
- private final transient Integer limit;
+ private final ImmutableList orderBy;
+ private final Cursor startCursor;
+ private final Cursor endCursor;
+ private final int offset;
+ private final Integer limit;
public abstract static class Filter implements Serializable {
@@ -751,10 +750,25 @@ B mergeFrom(com.google.datastore.v1.Query queryPb) {
limit = builder.limit;
}
+ @Override
+ public String toString() {
+ return toStringHelper()
+ .add("kind", kind)
+ .add("startCursor", startCursor)
+ .add("endCursor", endCursor)
+ .add("offset", offset)
+ .add("limit", limit)
+ .add("filter", filter)
+ .add("orderBy", orderBy)
+ .add("projection", projection)
+ .add("distinctOn", distinctOn)
+ .toString();
+ }
+
@Override
public int hashCode() {
return Objects.hash(namespace(), kind, startCursor, endCursor, offset, limit, filter, orderBy,
- distinctOn());
+ projection, distinctOn);
}
@Override
@@ -841,7 +855,6 @@ StructuredQuery nextQuery(com.google.datastore.v1.RunQueryResponse responsePb
return builder.build();
}
- @Override
com.google.datastore.v1.Query toPb() {
com.google.datastore.v1.Query.Builder queryPb = com.google.datastore.v1.Query.newBuilder();
if (kind != null) {
@@ -857,7 +870,7 @@ com.google.datastore.v1.Query toPb() {
queryPb.setOffset(offset);
}
if (limit != null) {
- queryPb.setLimit(com.google.protobuf.Int32Value.newBuilder().setValue(limit.intValue()));
+ queryPb.setLimit(com.google.protobuf.Int32Value.newBuilder().setValue(limit));
}
if (filter != null) {
queryPb.setFilter(filter.toPb());
@@ -879,12 +892,6 @@ com.google.datastore.v1.Query toPb() {
return queryPb.build();
}
- @Override
- Object fromPb(ResultType resultType, String namespace, byte[] bytesPb)
- throws InvalidProtocolBufferException {
- return fromPb(resultType, namespace, com.google.datastore.v1.Query.parseFrom(bytesPb));
- }
-
@SuppressWarnings("unchecked")
static StructuredQuery fromPb(ResultType> resultType, String namespace,
com.google.datastore.v1.Query queryPb) {
diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/Value.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/Value.java
index 7cd96bc29c33..00f2c2fa64ce 100644
--- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/Value.java
+++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/Value.java
@@ -18,9 +18,10 @@
import static com.google.common.base.Preconditions.checkNotNull;
+import com.google.common.base.MoreObjects;
import com.google.datastore.v1.Value.ValueTypeCase;
-import com.google.protobuf.InvalidProtocolBufferException;
+import java.io.Serializable;
import java.util.Objects;
/**
@@ -31,14 +32,14 @@
*
* @param the type of the content for this value
*/
-public abstract class Value extends Serializable {
+public abstract class Value implements Serializable {
- private static final long serialVersionUID = -1899638277588872742L;
+ private static final long serialVersionUID = 8532411152601335280L;
- private final transient ValueType valueType;
- private final transient boolean excludeFromIndexes;
- private final transient int meaning;
- private final transient V value;
+ private final ValueType valueType;
+ private final boolean excludeFromIndexes;
+ private final int meaning;
+ private final V value;
interface BuilderFactory, B extends ValueBuilder>
extends java.io.Serializable {
@@ -48,7 +49,7 @@ interface BuilderFactory, B extends ValueBuilder>
abstract static class BaseMarshaller, B extends ValueBuilder>
implements ValueMarshaller, BuilderFactory {
- private static final long serialVersionUID = 2880767488942992985L;
+ private static final long serialVersionUID = -5224067974180563797L;
@SuppressWarnings("deprecation")
@Override
@@ -170,6 +171,16 @@ public final V get() {
public abstract ValueBuilder, ?, ?> toBuilder();
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("valueType", valueType)
+ .add("excludeFromIndexes", excludeFromIndexes)
+ .add("meaning", meaning)
+ .add("value", value)
+ .toString();
+ }
+
@Override
public int hashCode() {
return Objects.hash(valueType, excludeFromIndexes, meaning, value);
@@ -191,7 +202,6 @@ public boolean equals(Object obj) {
&& Objects.equals(value, other.value);
}
- @Override
@SuppressWarnings("unchecked")
com.google.datastore.v1.Value toPb() {
return type().getMarshaller().toProto(this);
@@ -203,9 +213,4 @@ static Value> fromPb(com.google.datastore.v1.Value proto) {
return valueType == null ? RawValue.MARSHALLER.fromProto(proto).build()
: valueType.getMarshaller().fromProto(proto).build();
}
-
- @Override
- Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException {
- return fromPb(com.google.datastore.v1.Value.parseFrom(bytesPb));
- }
}
diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/ValueMarshaller.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/ValueMarshaller.java
index c0ce439c6bef..596eb744b3c8 100644
--- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/ValueMarshaller.java
+++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/ValueMarshaller.java
@@ -16,11 +16,13 @@
package com.google.cloud.datastore;
+import java.io.Serializable;
+
/**
* A common interface for Value marshallers.
*/
interface ValueMarshaller, B extends ValueBuilder>
- extends java.io.Serializable {
+ extends Serializable {
B fromProto(com.google.datastore.v1.Value proto);
diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/ValueType.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/ValueType.java
index 2b023654742a..9fb90f806c1d 100644
--- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/ValueType.java
+++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/ValueType.java
@@ -81,7 +81,7 @@ public enum ValueType {
RAW_VALUE(RawValue.MARSHALLER),
/**
- * Represents a {@link LatLng} value
+ * Represents a {@link LatLng} value.
*/
LAT_LNG(LatLngValue.MARSHALLER);
diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/DefaultDatastoreRpc.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/DefaultDatastoreRpc.java
index cbb2436c82e6..39d6f41e953b 100644
--- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/DefaultDatastoreRpc.java
+++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/DefaultDatastoreRpc.java
@@ -53,15 +53,15 @@ public DefaultDatastoreRpc(DatastoreOptions options) {
} else if (!removeScheme(com.google.datastore.v1.client.DatastoreFactory.DEFAULT_HOST)
.equals(removeScheme(normalizedHost))
&& !normalizedHost.isEmpty()) {
- String fullURL = normalizedHost;
- if (fullURL.charAt(fullURL.length() - 1) != '/') {
- fullURL = fullURL + '/';
+ String fullUrl = normalizedHost;
+ if (fullUrl.charAt(fullUrl.length() - 1) != '/') {
+ fullUrl = fullUrl + '/';
}
- fullURL = fullURL
+ fullUrl = fullUrl
+ com.google.datastore.v1.client.DatastoreFactory.VERSION
+ "/projects/"
+ options.projectId();
- clientBuilder = clientBuilder.projectId(null).projectEndpoint(fullURL);
+ clientBuilder = clientBuilder.projectId(null).projectEndpoint(fullUrl);
}
client = com.google.datastore.v1.client.DatastoreFactory.get()
.create(clientBuilder.build());
diff --git a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/testing/LocalDatastoreHelper.java b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/testing/LocalDatastoreHelper.java
index 3c54357de9d7..106fab01f005 100644
--- a/google-cloud-datastore/src/main/java/com/google/cloud/datastore/testing/LocalDatastoreHelper.java
+++ b/google-cloud-datastore/src/main/java/com/google/cloud/datastore/testing/LocalDatastoreHelper.java
@@ -623,7 +623,7 @@ public static LocalDatastoreHelper create() {
*
* @throws InterruptedException if emulator-related tasks are interrupted
* @throws IOException if there are socket exceptions or issues creating/deleting the temporary
- * data folder
+ * data folder
*/
public void start() throws IOException, InterruptedException {
// send a quick request in case we have a hanging process from a previous run
diff --git a/google-cloud-datastore/src/test/java/com/google/cloud/datastore/BaseEntityTest.java b/google-cloud-datastore/src/test/java/com/google/cloud/datastore/BaseEntityTest.java
index f5100b14dac5..08884a997bc0 100644
--- a/google-cloud-datastore/src/test/java/com/google/cloud/datastore/BaseEntityTest.java
+++ b/google-cloud-datastore/src/test/java/com/google/cloud/datastore/BaseEntityTest.java
@@ -48,13 +48,7 @@ private class Builder extends BaseEntity.Builder {
@Override public BaseEntity build() {
- return new BaseEntity(this) {
-
- @Override
- protected BaseEntityTest.Builder emptyBuilder() {
- return new BaseEntityTest.Builder();
- }
- };
+ return new BaseEntity(this) {};
}
}
diff --git a/google-cloud-datastore/src/test/java/com/google/cloud/datastore/BaseKeyTest.java b/google-cloud-datastore/src/test/java/com/google/cloud/datastore/BaseKeyTest.java
index abbfbd3a2f16..9d46c2eebb94 100644
--- a/google-cloud-datastore/src/test/java/com/google/cloud/datastore/BaseKeyTest.java
+++ b/google-cloud-datastore/src/test/java/com/google/cloud/datastore/BaseKeyTest.java
@@ -45,10 +45,6 @@ protected BaseKey build() {
path.addAll(ancestors);
path.add(PathElement.of(kind));
return new BaseKey(projectId, namespace, path.build()) {
- @Override
- protected Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException {
- return null;
- }
@Override
protected BaseKey parent() {