From 2c92435b91182413de09a57dbaed9b11231992f2 Mon Sep 17 00:00:00 2001 From: Markus Kreusch Date: Sun, 21 Feb 2016 18:57:50 +0100 Subject: [PATCH] Refactored WebDav test servers * Moved common code into own type --- .../webdav/FileSystemWebDabServer.java | 52 +++++++++++++++++++ .../frontend/webdav/InMemoryWebDavServer.java | 21 +------- .../frontend/webdav/NioWebDavServer.java | 22 +------- 3 files changed, 55 insertions(+), 40 deletions(-) create mode 100644 main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/FileSystemWebDabServer.java diff --git a/main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/FileSystemWebDabServer.java b/main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/FileSystemWebDabServer.java new file mode 100644 index 000000000..5b0c1fbd2 --- /dev/null +++ b/main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/FileSystemWebDabServer.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2016 Markus Kreusch and others. + * This file is licensed under the terms of the MIT license. + * See the LICENSE.txt file for more info. + * + * Contributors: + * Markus Kreusch - initial API and implementation + *******************************************************************************/ +package org.cryptomator.frontend.webdav; + +import java.net.URI; +import java.util.EnumSet; + +import javax.servlet.DispatcherType; + +import org.cryptomator.filesystem.FileSystem; +import org.cryptomator.frontend.webdav.filters.LoggingHttpFilter; +import org.eclipse.jetty.servlet.ServletContextHandler; + +class FileSystemWebDabServer { + + private static final WebDavComponent WEVDAV_COMP = DaggerWebDavComponent.create(); + + private final FileSystem fileSystem; + + public FileSystemWebDabServer(FileSystem fileSystem) { + this.fileSystem = fileSystem; + } + + public void run() { + try { + tryRun(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + private void tryRun() throws Exception { + WebDavServer server = WEVDAV_COMP.server(); + server.setPort(8080); + server.start(); + + ServletContextHandler servlet = server.addServlet(fileSystem, URI.create("http://localhost:8080/foo")); + servlet.addFilter(LoggingHttpFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST)); + servlet.start(); + + System.out.println("Server started. Press any key to stop it..."); + System.in.read(); + server.stop(); + } + +} diff --git a/main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/InMemoryWebDavServer.java b/main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/InMemoryWebDavServer.java index 35f12fd24..1797cb848 100644 --- a/main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/InMemoryWebDavServer.java +++ b/main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/InMemoryWebDavServer.java @@ -8,39 +8,20 @@ *******************************************************************************/ package org.cryptomator.frontend.webdav; -import java.net.URI; -import java.util.EnumSet; - -import javax.servlet.DispatcherType; - import org.cryptomator.filesystem.FileSystem; import org.cryptomator.filesystem.crypto.CryptoEngineTestModule; import org.cryptomator.filesystem.crypto.CryptoFileSystemDelegate; import org.cryptomator.filesystem.crypto.CryptoFileSystemTestComponent; import org.cryptomator.filesystem.crypto.DaggerCryptoFileSystemTestComponent; import org.cryptomator.filesystem.inmem.InMemoryFileSystem; -import org.cryptomator.frontend.webdav.filters.LoggingHttpFilter; -import org.eclipse.jetty.servlet.ServletContextHandler; import org.mockito.Mockito; public class InMemoryWebDavServer { private static final CryptoFileSystemTestComponent CRYPTO_FS_COMP = DaggerCryptoFileSystemTestComponent.builder().cryptoEngineModule(new CryptoEngineTestModule()).build(); - private static final WebDavComponent WEVDAV_COMP = DaggerWebDavComponent.create(); public static void main(String[] args) throws Exception { - WebDavServer server = WEVDAV_COMP.server(); - server.setPort(8080); - server.start(); - - FileSystem fileSystem = cryptoFileSystem(); - ServletContextHandler servlet = server.addServlet(fileSystem, URI.create("http://localhost:8080/foo")); - servlet.addFilter(LoggingHttpFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST)); - servlet.start(); - - System.out.println("Server started. Press any key to stop it..."); - System.in.read(); - server.stop(); + new FileSystemWebDabServer(cryptoFileSystem()).run(); } private static FileSystem cryptoFileSystem() { diff --git a/main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/NioWebDavServer.java b/main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/NioWebDavServer.java index 681eec05d..f22b7713c 100644 --- a/main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/NioWebDavServer.java +++ b/main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/NioWebDavServer.java @@ -12,42 +12,24 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UncheckedIOException; -import java.net.URI; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.EnumSet; import java.util.Optional; -import javax.servlet.DispatcherType; - import org.cryptomator.filesystem.FileSystem; import org.cryptomator.filesystem.nio.NioFileSystem; -import org.cryptomator.frontend.webdav.filters.LoggingHttpFilter; -import org.eclipse.jetty.servlet.ServletContextHandler; public class NioWebDavServer { private static final String PATH_TO_SERVE_PROPERTY = "pathToServe"; - private static final WebDavComponent WEVDAV_COMP = DaggerWebDavComponent.create(); public static void main(String[] args) throws Exception { - WebDavServer server = WEVDAV_COMP.server(); - server.setPort(8080); - server.start(); - - FileSystem fileSystem = setupFilesystem(); - ServletContextHandler servlet = server.addServlet(fileSystem, URI.create("http://localhost:8080/foo")); - servlet.addFilter(LoggingHttpFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST)); - servlet.start(); - - System.out.println("Server started. Press any key to stop it..."); - System.in.read(); - server.stop(); + new FileSystemWebDabServer(nioFileSystem()).run(); } - private static FileSystem setupFilesystem() { + private static FileSystem nioFileSystem() { return NioFileSystem.rootedAt(pathToServe()); }