From 7e8f0f25129785068db661cab80cc13d658120a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= Date: Mon, 6 Feb 2012 21:34:42 +0100 Subject: Support setting state in StateServlet. --- .../java/com/orbekk/same/http/StateServlet.java | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'same/src/main/java/com/orbekk/same/http') diff --git a/same/src/main/java/com/orbekk/same/http/StateServlet.java b/same/src/main/java/com/orbekk/same/http/StateServlet.java index 0ccf062..0ca1682 100644 --- a/same/src/main/java/com/orbekk/same/http/StateServlet.java +++ b/same/src/main/java/com/orbekk/same/http/StateServlet.java @@ -1,5 +1,7 @@ package com.orbekk.same.http; +import static com.orbekk.same.StackTraceUtil.throwableToString; + import java.io.IOException; import javax.servlet.http.HttpServlet; @@ -10,6 +12,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.orbekk.same.Client; +import com.orbekk.same.UpdateConflict; public class StateServlet extends HttpServlet { private Logger logger = LoggerFactory.getLogger(getClass()); @@ -19,9 +22,32 @@ public class StateServlet extends HttpServlet { this.client = client; } + private void handleSetState(HttpServletRequest request, + HttpServletResponse response) throws IOException { + if (request.getParameter("key") == null || + request.getParameter("value") == null) { + response.getWriter().println( + "Usage: action=set&key=DesiredKey&value=DesiredValue"); + } + + try { + client.set(request.getParameter("key"), request.getParameter("value")); + response.getWriter().println("Updated component: " + + request.getParameter("key") + "=" + + request.getParameter("value")); + } catch (UpdateConflict e) { + response.getWriter().println("Update conflict: " + + throwableToString(e)); + } + } + @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + if ("set".equals(request.getParameter("action"))) { + handleSetState(request, response); + } + response.setContentType("text/plain; charset=utf8"); response.getWriter().println(client.getState()); response.setStatus(HttpServletResponse.SC_OK); -- cgit v1.2.3