Lightweight web server for web commands, start of web config post
This commit is contained in:
@@ -90,9 +90,21 @@ public class POC implements Runnable{
|
||||
|
||||
if (args.length < 2){
|
||||
final POC realPOC = new POC(dbHostname);
|
||||
try {
|
||||
WebServer httpServer = new WebServer(8000, realPOC);
|
||||
} catch (Exception e){
|
||||
System.out.println("problem starting web server");
|
||||
System.out.println(e);
|
||||
}
|
||||
realPOC.start();
|
||||
} else {
|
||||
final POC simPOC = new POC(args[0], args[1].equals("true"), dbHostname);
|
||||
try {
|
||||
WebServer httpServer = new WebServer(8000, simPOC);
|
||||
} catch (Exception e){
|
||||
System.out.println("problem starting web server");
|
||||
System.out.println(e);
|
||||
}
|
||||
simPOC.start();
|
||||
}
|
||||
|
||||
|
||||
85
src/main/java/com/henrypump/poc/WebServer.java
Normal file
85
src/main/java/com/henrypump/poc/WebServer.java
Normal file
@@ -0,0 +1,85 @@
|
||||
package com.henrypump.poc;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
import com.sun.net.httpserver.HttpHandler;
|
||||
import com.sun.net.httpserver.HttpServer;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
|
||||
/**
|
||||
* Created by patrickjmcd on 2/28/17.
|
||||
*/
|
||||
|
||||
|
||||
public class WebServer{
|
||||
private POC attachedPOC;
|
||||
private int port;
|
||||
|
||||
WebServer(int port, POC attachedPOC) throws Exception {
|
||||
this.attachedPOC = attachedPOC;
|
||||
this.port = port;
|
||||
HttpServer server = HttpServer.create(new InetSocketAddress(port), 0);
|
||||
server.createContext("/cmd/start", new StartHandler());
|
||||
server.createContext("/cmd/stop", new StopHandler());
|
||||
server.createContext("/sts", new StatusHandler());
|
||||
server.createContext("/cmd/updateconfig", new UpdateConfigHandler());
|
||||
server.setExecutor(null); // creates a default executor
|
||||
server.start();
|
||||
}
|
||||
|
||||
class StartHandler implements HttpHandler {
|
||||
@Override
|
||||
public void handle(HttpExchange t) throws IOException {
|
||||
attachedPOC.thisWell.start("webserver");
|
||||
String response = attachedPOC.thisWell.getRunStatusString();
|
||||
t.sendResponseHeaders(200, response.getBytes().length);
|
||||
OutputStream os = t.getResponseBody();
|
||||
os.write(response.getBytes());
|
||||
os.close();
|
||||
}
|
||||
}
|
||||
|
||||
class StopHandler implements HttpHandler {
|
||||
@Override
|
||||
public void handle(HttpExchange t) throws IOException {
|
||||
attachedPOC.thisWell.stop("webserver");
|
||||
String response = attachedPOC.thisWell.getRunStatusString();
|
||||
t.sendResponseHeaders(200, response.getBytes().length);
|
||||
OutputStream os = t.getResponseBody();
|
||||
os.write(response.getBytes());
|
||||
os.close();
|
||||
}
|
||||
}
|
||||
|
||||
class StatusHandler implements HttpHandler {
|
||||
@Override
|
||||
public void handle(HttpExchange t) throws IOException {
|
||||
String response = attachedPOC.thisWell.getRunStatusString();
|
||||
t.sendResponseHeaders(200, response.getBytes().length);
|
||||
OutputStream os = t.getResponseBody();
|
||||
os.write(response.getBytes());
|
||||
os.close();
|
||||
}
|
||||
}
|
||||
|
||||
class UpdateConfigHandler implements HttpHandler {
|
||||
@Override
|
||||
public void handle(HttpExchange t) throws IOException {
|
||||
attachedPOC.thisWell.getWellSetup();
|
||||
JSONObject respJSON = new JSONObject();
|
||||
respJSON.put("status", "OK");
|
||||
String response = respJSON.toJSONString();
|
||||
t.sendResponseHeaders(200, response.getBytes().length);
|
||||
OutputStream os = t.getResponseBody();
|
||||
os.write(response.getBytes());
|
||||
os.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user