package com.namazustudios.test.server; import java.io.IOException; import javax.jdo.JDOObjectNotFoundException; import javax.jdo.PersistenceManager; import javax.jdo.Transaction; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.appengine.api.datastore.Key; import com.google.appengine.api.datastore.KeyFactory; /** * The server side implementation of the RPC service. */ @SuppressWarnings("serial") public class HelloWorld extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { TestDataObject tdo; final String name, foo, bar; PersistenceManager pm = PMF.get().getPersistenceManager(); Transaction t = pm.currentTransaction(); foo = getParameter(req, "foo", "foo"); bar = getParameter(req, "bar", "bar"); name = getParameter(req, "name", "default"); t.begin(); try { try { Key key = KeyFactory.createKey(TestDataObject.class .getSimpleName(), name); tdo = pm.getObjectById(TestDataObject.class, key); } catch (JDOObjectNotFoundException ex) { tdo = new TestDataObject(name); } tdo.foo = foo; tdo.bar = bar; tdo = pm.makePersistent(tdo); t.commit(); } finally { if (t.isActive()) { t.rollback(); } } } private String getParameter(HttpServletRequest req, String key, String def) { String val = req.getParameter(key); return val == null ? def : val; } }