Refactored WebDav test servers

* Moved common code into own type
This commit is contained in:
Markus Kreusch
2016-02-21 18:57:50 +01:00
parent 180b14b0c7
commit 2c92435b91
3 changed files with 55 additions and 40 deletions
@@ -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();
}
}
@@ -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() {
@@ -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());
}