Add calls to Datastore service

git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@823799 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
rfeng 2009-10-10 06:16:46 +00:00
commit b7878fb975
3 changed files with 32 additions and 1 deletions

View file

@ -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
+ "<p>History<hr>"
+ stack
+ "</p>";
+ "</p><b>"
+ count
+ "</b>";
}
@Init

View file

@ -25,6 +25,7 @@
<reference name="userService" target="UserService"/>
<reference name="fetchService" target="URLFetchService"/>
<reference name="memcacheService" target="MemcacheService"/>
<reference name="datastoreService" target="DatastoreService"/>
</component>
<component name="UserService">

View file

@ -53,5 +53,8 @@ in</a> to include your name with greetings you post.</p>
Calling HelloworldService sayHello("world, "+$user) returns:
<p><%=service.sayHello("world ("+user+")")%>
<form action="hello.jsp" method="get">
<input type="submit" value="Try Again">
</form>
</body>
</html>