Skip to content

Commit

Permalink
Refactored WebDav test servers
Browse files Browse the repository at this point in the history
* Moved common code into own type
  • Loading branch information
markuskreusch committed Feb 21, 2016
1 parent 180b14b commit 2c92435
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 40 deletions.
Original file line number Diff line number Diff line change
@@ -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();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,42 +12,24 @@
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());
}

Expand Down

0 comments on commit 2c92435

Please sign in to comment.