From c3f7d755466c7e87a41fc8fae235c81f81d4ee27 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Mon, 5 Dec 2016 15:25:25 +0300 Subject: [PATCH] WebInterface: static page --- webinterface/pom.xml | 67 +++++++++++++++++++ .../java/asys/webinterface/Activator.java | 23 +++++++ .../java/asys/webinterface/IndexHandler.java | 26 +++++++ .../java/asys/webinterface/WebServer.java | 24 +++++++ 4 files changed, 140 insertions(+) create mode 100644 webinterface/pom.xml create mode 100644 webinterface/src/main/java/asys/webinterface/Activator.java create mode 100644 webinterface/src/main/java/asys/webinterface/IndexHandler.java create mode 100644 webinterface/src/main/java/asys/webinterface/WebServer.java diff --git a/webinterface/pom.xml b/webinterface/pom.xml new file mode 100644 index 0000000..c305b6a --- /dev/null +++ b/webinterface/pom.xml @@ -0,0 +1,67 @@ + + + 4.0.0 + ASys Web interface + + + + DmitriyMX + mail@dmiriymx.ru + + + + + UTF-8 + 1.8 + + + asys + webinterface + 0.1-SNAPSHOT + bundle + + + + org.osgi + org.osgi.core + 6.0.0 + + + asys + api + 0.1-SNAPSHOT + + + + + ${project.groupId}.${project.artifactId}-${project.version} + + + org.apache.maven.plugins + maven-compiler-plugin + 3.5.1 + + ${java.version} + ${java.version} + ${project.build.sourceEncoding} + + + + org.apache.felix + maven-bundle-plugin + 3.0.1 + true + + + ${project.name} + ${project.groupId}.${project.artifactId} + asys.webinterface.Activator + * + + + + + + \ No newline at end of file diff --git a/webinterface/src/main/java/asys/webinterface/Activator.java b/webinterface/src/main/java/asys/webinterface/Activator.java new file mode 100644 index 0000000..67f18ae --- /dev/null +++ b/webinterface/src/main/java/asys/webinterface/Activator.java @@ -0,0 +1,23 @@ +/* + * DmitriyMX + * 2016-12-05 + */ +package asys.webinterface; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class Activator implements BundleActivator { + private WebServer webServer; + + @Override + public void start(BundleContext context) throws Exception { + webServer = new WebServer(); + webServer.start(8778); + } + + @Override + public void stop(BundleContext context) throws Exception { + webServer.stop(); + } +} diff --git a/webinterface/src/main/java/asys/webinterface/IndexHandler.java b/webinterface/src/main/java/asys/webinterface/IndexHandler.java new file mode 100644 index 0000000..67f10e8 --- /dev/null +++ b/webinterface/src/main/java/asys/webinterface/IndexHandler.java @@ -0,0 +1,26 @@ +/* + * DmitriyMX + * 2016-12-05 + */ +package asys.webinterface; + +import com.sun.net.httpserver.HttpExchange; +import com.sun.net.httpserver.HttpHandler; + +import java.io.IOException; +import java.io.OutputStream; +import java.nio.charset.Charset; + +public class IndexHandler implements HttpHandler { + private static final Charset defaultCharset = Charset.forName("UTF-8"); + + @Override + public void handle(HttpExchange httpExchange) throws IOException { + String plainText = "ASys Webinterface"; + httpExchange.sendResponseHeaders(200, plainText.length()); + httpExchange.setAttribute("Context-Type", "text/plain;charset=utf-8"); + OutputStream responseBody = httpExchange.getResponseBody(); + responseBody.write(plainText.getBytes(defaultCharset)); + responseBody.close(); + } +} diff --git a/webinterface/src/main/java/asys/webinterface/WebServer.java b/webinterface/src/main/java/asys/webinterface/WebServer.java new file mode 100644 index 0000000..2224dc5 --- /dev/null +++ b/webinterface/src/main/java/asys/webinterface/WebServer.java @@ -0,0 +1,24 @@ +/* + * DmitriyMX + * 2016-12-05 + */ +package asys.webinterface; + +import com.sun.net.httpserver.HttpServer; + +import java.io.IOException; +import java.net.InetSocketAddress; + +public class WebServer { + private HttpServer server; + + public void start(int port) throws IOException { + server = HttpServer.create(new InetSocketAddress(port), 0); + server.createContext("/", new IndexHandler()); + server.start(); + } + + public void stop() { + server.stop(0); + } +}