From 5e2e2f19e06b9f4a01c6da83a2297eb18fe2b546 Mon Sep 17 00:00:00 2001 From: ritchie Date: Thu, 14 May 2015 09:02:50 +0200 Subject: reponces now created by factorymethods that can be overwritten, solves #94 --- .../src/main/java/fi/iki/elonen/HelloServer.java | 25 ++++----- .../main/java/fi/iki/elonen/TempFilesServer.java | 62 +++++++++++----------- .../main/java/fi/iki/elonen/debug/DebugServer.java | 22 ++++---- 3 files changed, 55 insertions(+), 54 deletions(-) (limited to 'samples/src/main/java/fi/iki') diff --git a/samples/src/main/java/fi/iki/elonen/HelloServer.java b/samples/src/main/java/fi/iki/elonen/HelloServer.java index 7b8c9f0..ef250d5 100644 --- a/samples/src/main/java/fi/iki/elonen/HelloServer.java +++ b/samples/src/main/java/fi/iki/elonen/HelloServer.java @@ -8,18 +8,18 @@ package fi.iki.elonen; * %% * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. - * + * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. - * + * * 3. Neither the name of the nanohttpd nor the names of its contributors * may be used to endorse or promote products derived from this software without * specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. @@ -46,6 +46,10 @@ public class HelloServer extends NanoHTTPD { */ private static final Logger LOG = Logger.getLogger(HelloServer.class.getName()); + public static void main(String[] args) { + ServerRunner.run(HelloServer.class); + } + public HelloServer() { super(8080); } @@ -54,21 +58,18 @@ public class HelloServer extends NanoHTTPD { public Response serve(IHTTPSession session) { Method method = session.getMethod(); String uri = session.getUri(); - LOG.info(method + " '" + uri + "' "); + HelloServer.LOG.info(method + " '" + uri + "' "); String msg = "

Hello server

\n"; Map parms = session.getParms(); - if (parms.get("username") == null) + if (parms.get("username") == null) { msg += "
\n" + "

Your name:

\n" + "
\n"; - else + } else { msg += "

Hello, " + parms.get("username") + "!

"; + } msg += "\n"; - return new NanoHTTPD.Response(msg); - } - - public static void main(String[] args) { - ServerRunner.run(HelloServer.class); + return newFixedLengthResponse(msg); } } diff --git a/samples/src/main/java/fi/iki/elonen/TempFilesServer.java b/samples/src/main/java/fi/iki/elonen/TempFilesServer.java index 2e0828f..aacd926 100644 --- a/samples/src/main/java/fi/iki/elonen/TempFilesServer.java +++ b/samples/src/main/java/fi/iki/elonen/TempFilesServer.java @@ -8,18 +8,18 @@ package fi.iki.elonen; * %% * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. - * + * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. - * + * * 3. Neither the name of the nanohttpd nor the names of its contributors * may be used to endorse or promote products derived from this software without * specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. @@ -43,20 +43,6 @@ import fi.iki.elonen.debug.DebugServer; */ public class TempFilesServer extends DebugServer { - public static void main(String[] args) { - TempFilesServer server = new TempFilesServer(); - server.setTempFileManagerFactory(new ExampleManagerFactory()); - ServerRunner.executeInstance(server); - } - - private static class ExampleManagerFactory implements TempFileManagerFactory { - - @Override - public TempFileManager create() { - return new ExampleManager(); - } - } - private static class ExampleManager implements TempFileManager { private final String tmpdir; @@ -64,31 +50,45 @@ public class TempFilesServer extends DebugServer { private final List tempFiles; private ExampleManager() { - tmpdir = System.getProperty("java.io.tmpdir"); - tempFiles = new ArrayList(); - } - - @Override - public TempFile createTempFile() throws Exception { - DefaultTempFile tempFile = new DefaultTempFile(tmpdir); - tempFiles.add(tempFile); - System.out.println("Created tempFile: " + tempFile.getName()); - return tempFile; + this.tmpdir = System.getProperty("java.io.tmpdir"); + this.tempFiles = new ArrayList(); } @Override public void clear() { - if (!tempFiles.isEmpty()) { + if (!this.tempFiles.isEmpty()) { System.out.println("Cleaning up:"); } - for (TempFile file : tempFiles) { + for (TempFile file : this.tempFiles) { try { System.out.println(" " + file.getName()); file.delete(); } catch (Exception ignored) { } } - tempFiles.clear(); + this.tempFiles.clear(); } + + @Override + public TempFile createTempFile() throws Exception { + DefaultTempFile tempFile = new DefaultTempFile(this.tmpdir); + this.tempFiles.add(tempFile); + System.out.println("Created tempFile: " + tempFile.getName()); + return tempFile; + } + } + + private static class ExampleManagerFactory implements TempFileManagerFactory { + + @Override + public TempFileManager create() { + return new ExampleManager(); + } + } + + public static void main(String[] args) { + TempFilesServer server = new TempFilesServer(); + server.setTempFileManagerFactory(new ExampleManagerFactory()); + ServerRunner.executeInstance(server); } } diff --git a/samples/src/main/java/fi/iki/elonen/debug/DebugServer.java b/samples/src/main/java/fi/iki/elonen/debug/DebugServer.java index 7780576..10f777d 100644 --- a/samples/src/main/java/fi/iki/elonen/debug/DebugServer.java +++ b/samples/src/main/java/fi/iki/elonen/debug/DebugServer.java @@ -8,18 +8,18 @@ package fi.iki.elonen.debug; * %% * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. - * + * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. - * + * * 3. Neither the name of the nanohttpd nor the names of its contributors * may be used to endorse or promote products derived from this software without * specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. @@ -42,12 +42,16 @@ import fi.iki.elonen.ServerRunner; public class DebugServer extends NanoHTTPD { + public static void main(String[] args) { + ServerRunner.run(DebugServer.class); + } + public DebugServer() { super(8080); } - public static void main(String[] args) { - ServerRunner.run(DebugServer.class); + private void listItem(StringBuilder sb, Map.Entry entry) { + sb.append("
  • ").append(entry.getKey()).append(" = ").append(entry.getValue()).append("
  • "); } @Override @@ -80,7 +84,7 @@ public class DebugServer extends NanoHTTPD { sb.append(""); sb.append(""); - return new Response(sb.toString()); + return newFixedLengthResponse(sb.toString()); } private String toString(Map map) { @@ -99,8 +103,4 @@ public class DebugServer extends NanoHTTPD { sb.append(""); return sb.toString(); } - - private void listItem(StringBuilder sb, Map.Entry entry) { - sb.append("
  • ").append(entry.getKey()).append(" = ").append(entry.getValue()).append("
  • "); - } } -- cgit v1.2.3