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+")")%> +

+ +
-- cgit v1.2.3