From b7878fb9752f9fdd41449e44743a87534ece73ce Mon Sep 17 00:00:00 2001
From: rfeng
Date: Sat, 10 Oct 2009 06:16:46 +0000
Subject: Add calls to Datastore service
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@823799 13f79535-47bb-0310-9956-ffa450edef68
---
.../src/sample/HelloworldServiceImpl.java | 29 +++++++++++++++++++++-
.../war/WEB-INF/web.composite | 1 +
.../helloworld-jsp-google-appengine/war/hello.jsp | 3 +++
3 files changed, 32 insertions(+), 1 deletion(-)
(limited to 'sandbox/rfeng')
diff --git a/sandbox/rfeng/helloworld-jsp-google-appengine/src/sample/HelloworldServiceImpl.java b/sandbox/rfeng/helloworld-jsp-google-appengine/src/sample/HelloworldServiceImpl.java
index d7867c6a45..4257fea3b1 100644
--- a/sandbox/rfeng/helloworld-jsp-google-appengine/src/sample/HelloworldServiceImpl.java
+++ b/sandbox/rfeng/helloworld-jsp-google-appengine/src/sample/HelloworldServiceImpl.java
@@ -29,6 +29,12 @@ import org.oasisopen.sca.annotation.Reference;
import org.oasisopen.sca.annotation.Scope;
import org.oasisopen.sca.annotation.Service;
+import com.google.appengine.api.datastore.DatastoreService;
+import com.google.appengine.api.datastore.Entity;
+import com.google.appengine.api.datastore.EntityNotFoundException;
+import com.google.appengine.api.datastore.Key;
+import com.google.appengine.api.datastore.KeyFactory;
+import com.google.appengine.api.datastore.Transaction;
import com.google.appengine.api.memcache.MemcacheService;
import com.google.appengine.api.urlfetch.HTTPResponse;
import com.google.appengine.api.urlfetch.URLFetchService;
@@ -48,6 +54,9 @@ public class HelloworldServiceImpl implements HelloworldService {
@Reference
protected MemcacheService memcacheService;
+ @Reference
+ protected DatastoreService datastoreService;
+
public String sayHello(String name) {
User user = userService.getCurrentUser();
String id = (user == null) ? "" : user.getUserId();
@@ -59,6 +68,22 @@ public class HelloworldServiceImpl implements HelloworldService {
stack.push(new Date().toString() + ": " + name);
memcacheService.put("history", stack);
+ Transaction tx = datastoreService.beginTransaction();
+ Entity entity = null;
+ Key key = KeyFactory.createKey("HitCounter", "countter");
+ try {
+ entity = datastoreService.get(tx, key);
+ } catch (EntityNotFoundException e1) {
+ entity = new Entity(key);
+ entity.setProperty("counter", new Long(0));
+ }
+
+ Long count = (Long)entity.getProperty("counter");
+ entity.setProperty("counter", new Long(count.longValue() + 1));
+
+ datastoreService.put(tx, entity);
+ tx.commit();
+
String content = "";
try {
HTTPResponse response = fetchService.fetch(new URL("http://tuscany.apache.org"));
@@ -76,7 +101,9 @@ public class HelloworldServiceImpl implements HelloworldService {
+ content
+ "History
"
+ stack
- + "
";
+ + ""
+ + count
+ + "";
}
@Init
diff --git a/sandbox/rfeng/helloworld-jsp-google-appengine/war/WEB-INF/web.composite b/sandbox/rfeng/helloworld-jsp-google-appengine/war/WEB-INF/web.composite
index e7f05bb67b..b0c0de7ebc 100644
--- a/sandbox/rfeng/helloworld-jsp-google-appengine/war/WEB-INF/web.composite
+++ b/sandbox/rfeng/helloworld-jsp-google-appengine/war/WEB-INF/web.composite
@@ -25,6 +25,7 @@
+
diff --git a/sandbox/rfeng/helloworld-jsp-google-appengine/war/hello.jsp b/sandbox/rfeng/helloworld-jsp-google-appengine/war/hello.jsp
index f4d9b937ca..c0bdf0d91e 100644
--- a/sandbox/rfeng/helloworld-jsp-google-appengine/war/hello.jsp
+++ b/sandbox/rfeng/helloworld-jsp-google-appengine/war/hello.jsp
@@ -53,5 +53,8 @@ in to include your name with greetings you post.
Calling HelloworldService sayHello("world, "+$user) returns:
<%=service.sayHello("world ("+user+")")%>
+