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:
parent
f0d916a626
commit
b7878fb975
3 changed files with 32 additions and 1 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue