package org.deftserver.example.kv;
import java.util.HashMap;
import java.util.Map;
import org.deftserver.io.IOLoop;
import org.deftserver.web.Application;
import org.deftserver.web.AsyncResult;
import org.deftserver.web.Asynchronous;
import org.deftserver.web.HttpServer;
import org.deftserver.web.handler.RequestHandler;
import org.deftserver.web.http.HttpRequest;
import org.deftserver.web.http.HttpResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class KeyValueStoreExample {
private final static Logger logger = LoggerFactory.getLogger(KeyValueStoreExample.class);
private final static int PORT = 8080;
private static class KeyValueStoreExampleRequestHandler extends RequestHandler {
private final KeyValueStoreClient client = new KeyValueStoreClient(KeyValueStore.HOST, KeyValueStore.PORT);
public KeyValueStoreExampleRequestHandler() {
new KeyValueStore().start();
client.connect();
}
@Override
@Asynchronous
public void get(HttpRequest request, final HttpResponse response) {
client.get("deft", new AsyncResult<String>() {
@Override public void onFailure(Throwable caught) { /* ignore */}
@Override public void onSuccess(String result) { response.write(result).finish(); }
});
}
}
public static void main(String[] args) {
Map<String, RequestHandler> handlers = new HashMap<String, RequestHandler>();
handlers.put("/kv", new KeyValueStoreExampleRequestHandler());
Application application = new Application(handlers);
logger.debug("Starting up server on port: " + PORT);
HttpServer server = new HttpServer(application);
server.listen(PORT);
IOLoop.INSTANCE.start();
}
}