8000 Structure data for strong consistency · nagabharat/java-docs-samples@8a10c6b · GitHub
[go: up one dir, main page]

Skip to content

Commit 8a10c6b

Browse files
author
Ajay Kannan
committed
Structure data for strong consistency
1 parent 2604810 commit 8a10c6b

File tree

3 files changed

+24
-9
lines changed

3 files changed

+24
-9
lines changed

managed_vms/sparkjava/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<dependency>
3131
<groupId>com.google.gcloud</groupId>
3232
<artifactId>gcloud-java</artifactId>
33-
<version>0.1.3</version>
33+
<version>0.1.4</version>
3434
</dependency>
3535
</dependencies>
3636
<build>

managed_vms/sparkjava/src/main/java/com/google/appengine/sparkdemo/UserService.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222
import com.google.gcloud.datastore.Entity;
2323
import com.google.gcloud.datastore.Key;
2424
import com.google.gcloud.datastore.KeyFactory;
25+
import com.google.gcloud.datastore.PathElement;
2526
import com.google.gcloud.datastore.Query;
2627
import com.google.gcloud.datastore.QueryResults;
28+
import com.google.gcloud.datastore.StructuredQuery.PropertyFilter;
2729

2830
import java.util.ArrayList;
2931
import java.util.List;
@@ -42,16 +44,20 @@ public class UserService {
4244
*/
4345
public UserService(Datastore datastore, String kind) {
4446
this.datastore = datastore;
45-
this.keyFactory = datastore.newKeyFactory().kind(kind);
47+
this.keyFactory =
48+
datastore.newKeyFactory().ancestors(PathElement.of("SparkJavaDemo", "default")).kind(kind);
4649
this.kind = kind;
4750
}
4851

4952
/**
5053
* Return a list of all users.
5154
*/
5255
public List<User> getAllUsers() {
53-
Query<Entity> query =
54-
Query.gqlQueryBuilder(Query.ResultType.ENTITY, "SELECT * FROM " + kind).build();
56+
Query<Entity> query = Query.entityQueryBuilder()
57+
.kind(kind)
58+
.filter(PropertyFilter.hasAncestor(
59+
datastore.newKeyFactory().kind("SparkJavaDemo").newKey("default")))
60+
.build();
5561
QueryResults<Entity> results = datastore.run(query);
5662
List<User> users = new ArrayList<>();
5763
while (results.hasNext()) {
@@ -83,7 +89,9 @@ public User createUser(String name, String email) {
8389
*/
8490
public String deleteUser(String id) {
8591
Key key = keyFactory.newKey(id);
86-
datastore.delete(key);
92+
if (datastore.get(key) != null) {
93+
datastore.delete(key);
94+
}
8795
return "ok";
8896
}
8997

managed_vms/sparkjava/src/test/java/com/google/appengine/sparkdemo/UserServiceTest.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@
2626
import com.google.gcloud.datastore.DatastoreOptions;
2727
import com.google.gcloud.datastore.Entity;
2828
import com.google.gcloud.datastore.Key;
29+
import com.google.gcloud.datastore.PathElement;
2930
import com.google.gcloud.datastore.Query;
3031
import com.google.gcloud.datastore.QueryResults;
31-
import com.google.gcloud.datastore.StructuredQuery;
32+
import com.google.gcloud.datastore.StructuredQuery.PropertyFilter;
3233
import com.google.gcloud.datastore.testing.LocalGcdHelper;
3334

3435
import org.junit.AfterClass;
@@ -48,7 +49,9 @@ public class UserServiceTest {
4849
private static final String USER_EMAIL = "my@email.com";
4950
private static final User USER = new User(USER_ID, USER_NAME, USER_EMAIL);
5051
private static final String KIND = "DemoUser";
51-
private static final Key USER_KEY = Key.builder(PROJECT_ID, KIND, USER_ID).build();
52+
private static final Key USER_KEY = Key.builder(PROJECT_ID, KIND, USER_ID)
53+
.ancestors(PathElement.of("SparkJavaDemo", "default"))
54+
.build();
5255
private static final Entity USER_RECORD = Entity.builder(USER_KEY)
5356
.set("id", USER_ID)
5457
.set("name", USER_NAME)
@@ -61,7 +64,7 @@ public class UserServiceTest {
6164
@BeforeClass
6265
public static void beforeClass() throws IOException, InterruptedException {
6366
if (!LocalGcdHelper.isActive(PROJECT_ID, PORT)) {
64-
gcdHelper = LocalGcdHelper.start(PROJECT_ID, PORT);
67+
gcdHelper = LocalGcdHelper.start(PROJECT_ID, PORT, 0.0);
6568
}
6669
datastore = DatastoreOptions.builder()
6770
.projectId(PROJECT_ID)
@@ -73,7 +76,11 @@ public static void beforeClass() throws IOException, InterruptedException {
7376

7477
@Before
7578
public void setUp() {
76-
StructuredQuery<Key> query = Query.keyQueryBuilder().build();
79+
Query<Key> query = Query.keyQueryBuilder()
80+
.filter(PropertyFilter.hasAncestor(
81+
datastore.newKeyFactory().kind("SparkJavaDemo").newKey("default")))
82+
.kind(KIND)
83+
.build();
7784
QueryResults<Key> result = datastore.run(query);
7885
datastore.delete(Iterators.toArray(result, Key.class));
7986
datastore.add(USER_RECORD);

0 commit comments

Comments
 (0)
0