diff options
author | Simon Rettberg | 2015-09-02 12:09:23 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-09-02 12:09:23 +0200 |
commit | 8e444863bdb91f7b8109ff7c15c29673fe67d4d6 (patch) | |
tree | 41b8a00754f6b67b5e6392edcf5762ca5b9477b1 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java | |
parent | .....aaaaand it's gone (diff) | |
download | tutor-module-8e444863bdb91f7b8109ff7c15c29673fe67d4d6.tar.gz tutor-module-8e444863bdb91f7b8109ff7c15c29673fe67d4d6.tar.xz tutor-module-8e444863bdb91f7b8109ff7c15c29673fe67d4d6.zip |
[server] Serve vmchooser-compatible lecture list via http
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java')
-rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java index 02172616..a7a13305 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java @@ -1,9 +1,29 @@ package org.openslx.bwlp.sat.web; +import java.io.ByteArrayInputStream; + +import org.apache.commons.io.output.ByteArrayOutputStream; +import org.openslx.bwlp.sat.database.mappers.DbLecture; +import org.openslx.util.GenericDataCache; +import org.simpleframework.xml.Serializer; +import org.simpleframework.xml.core.Persister; + import fi.iki.elonen.NanoHTTPD; public class WebServer extends NanoHTTPD { + private static final GenericDataCache<byte[]> lectureListCache = new GenericDataCache<byte[]>(15000) { + Serializer serializer = new Persister(); + + @Override + protected byte[] update() throws Exception { + VmChooserListXml listXml = DbLecture.getUsableListXml(false); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + serializer.write(listXml, baos); + return baos.toByteArray(); + } + }; + public WebServer(int port) { super(port); } @@ -11,7 +31,7 @@ public class WebServer extends NanoHTTPD { @Override public Response serve(IHTTPSession session) { String uri = session.getUri(); - + if (uri == null || uri.length() == 0) { return internalServerError(); } @@ -25,7 +45,8 @@ public class WebServer extends NanoHTTPD { } private Response serveVmChooserList() { - return new NanoHTTPD.Response(NanoHTTPD.Response.Status.NOT_FOUND, "text/plain", "BLA"); + return new NanoHTTPD.Response(NanoHTTPD.Response.Status.NOT_FOUND, "text/xml; charset=utf-8", + new ByteArrayInputStream(lectureListCache.get())); } private Response internalServerError() { |