From 55f810dddf641ef26178d7c7e4d4e498dce40c51 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Thu, 8 Dec 2016 01:52:02 +0300 Subject: [PATCH] =?UTF-8?q?WebInterface:=20=D0=BE=D1=82=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB?= =?UTF-8?q?=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webinterface/pom.xml | 2 +- .../java/asys/webinterface/IndexHandler.java | 32 ++++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/webinterface/pom.xml b/webinterface/pom.xml index 70a7015..6bdeaca 100644 --- a/webinterface/pom.xml +++ b/webinterface/pom.xml @@ -19,7 +19,7 @@ asys webinterface - 0.2-SNAPSHOT + 0.3-SNAPSHOT bundle diff --git a/webinterface/src/main/java/asys/webinterface/IndexHandler.java b/webinterface/src/main/java/asys/webinterface/IndexHandler.java index 5bf1eaf..e06bb63 100644 --- a/webinterface/src/main/java/asys/webinterface/IndexHandler.java +++ b/webinterface/src/main/java/asys/webinterface/IndexHandler.java @@ -8,10 +8,14 @@ import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; +import org.osgi.framework.BundleException; import java.io.IOException; import java.io.OutputStream; +import java.net.URI; import java.nio.charset.Charset; +import java.util.HashMap; +import java.util.Map; public class IndexHandler implements HttpHandler { private static final Charset defaultCharset = Charset.forName("UTF-8"); @@ -23,11 +27,24 @@ public class IndexHandler implements HttpHandler { @Override public void handle(HttpExchange httpExchange) throws IOException { + URI requestURI = httpExchange.getRequestURI(); + if (requestURI.getQuery() != null && !requestURI.getQuery().isEmpty()) { + Map map = queryToMap(requestURI.getQuery()); + int bndid = Integer.valueOf(map.get("bnd")); + try { + context.getBundle(bndid).stop(); + } catch (BundleException e) { + e.printStackTrace(); + } + } + StringBuilder htmlText = new StringBuilder(""); htmlText.append("

").append("ASys Web interface").append("

") .append("
    "); for (Bundle bundle : context.getBundle(0).getBundleContext().getBundles()) { - htmlText.append("
  • ").append(bundle.getHeaders().get("Bundle-Name")).append("
  • "); + htmlText.append("
  • ").append(bundle.getHeaders().get("Bundle-Name")) + .append(" [Stop]") + .append("
  • "); } htmlText.append("
"); @@ -37,4 +54,17 @@ public class IndexHandler implements HttpHandler { responseBody.write(htmlText.toString().getBytes(defaultCharset)); responseBody.close(); } + + private Map queryToMap(String query){ + Map result = new HashMap(); + for (String param : query.split("&")) { + String pair[] = param.split("="); + if (pair.length>1) { + result.put(pair[0], pair[1]); + }else{ + result.put(pair[0], ""); + } + } + return result; + } }