diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/TestDrivers.java |
Publish
Diffstat (limited to 'jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/TestDrivers.java')
-rw-r--r-- | jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/TestDrivers.java | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/TestDrivers.java b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/TestDrivers.java new file mode 100644 index 00000000000..3137ae24b7b --- /dev/null +++ b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/TestDrivers.java @@ -0,0 +1,95 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.jdisc.http.server.jetty; + +import com.google.inject.AbstractModule; +import com.google.inject.Module; +import com.google.inject.util.Modules; +import com.yahoo.jdisc.application.BindingRepository; +import com.yahoo.jdisc.handler.RequestHandler; +import com.yahoo.jdisc.http.ConnectorConfig; +import com.yahoo.jdisc.http.ServerConfig; +import com.yahoo.jdisc.http.filter.RequestFilter; +import com.yahoo.jdisc.http.filter.ResponseFilter; +import com.yahoo.jdisc.http.guiceModules.ConnectorFactoryRegistryModule; +import com.yahoo.jdisc.http.guiceModules.ServletModule; +import com.yahoo.jdisc.http.server.FilterBindings; + +import java.io.IOException; + +import static com.google.inject.name.Names.named; + +/** + * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen Hult</a> + */ +public class TestDrivers { + + private static final String KEY_STORE = "src/test/resources/ssl_keystore_test.jks"; + public static final String KEY_STORE_PASSWORD = "secret"; + + public static TestDriver newConfiguredInstance(final RequestHandler requestHandler, + final ServerConfig.Builder serverConfig, + final ConnectorConfig.Builder connectorConfig, + final Module... guiceModules) throws IOException { + return TestDriver.newInstance( + JettyHttpServer.class, + requestHandler, + newConfigModule(serverConfig, connectorConfig, guiceModules)); + } + + public static TestDriver newInstance(final RequestHandler requestHandler, + final Module... guiceModules) throws IOException { + return TestDriver.newInstance( + JettyHttpServer.class, + requestHandler, + newConfigModule( + new ServerConfig.Builder(), + new ConnectorConfig.Builder(), + guiceModules + )); + } + + public static TestDriver newInstanceWithSsl(final RequestHandler requestHandler, + final Module... guiceModules) throws IOException { + return TestDriver.newInstance( + JettyHttpServer.class, + requestHandler, + newConfigModule( + new ServerConfig.Builder(), + new ConnectorConfig.Builder() + .ssl(new ConnectorConfig.Ssl.Builder() + .enabled(true) + .keyDbKey("dummy-key-for-StaticKeyDbConnectorFactory.getPasswordFromKeydb") + .keyStorePath(KEY_STORE) + .trustStorePath(KEY_STORE)), + Modules.combine(new AbstractModule() { + + @Override + protected void configure() { + bind(String.class).annotatedWith(named("keyStorePassword")) + .toInstance(KEY_STORE_PASSWORD); + } + }, Modules.combine(guiceModules)) + )); + } + + private static Module newConfigModule( + final ServerConfig.Builder serverConfig, + final ConnectorConfig.Builder connectorConfigBuilder, + final Module... guiceModules) { + return Modules.combine( + new AbstractModule() { + @Override + protected void configure() { + bind(ServerConfig.class).toInstance(new ServerConfig(serverConfig)); + bind(ConnectorConfig.class).toInstance(new ConnectorConfig(connectorConfigBuilder)); + bind(FilterBindings.class).toInstance( + new FilterBindings( + new BindingRepository<RequestFilter>(), + new BindingRepository<ResponseFilter>())); + } + }, + new ConnectorFactoryRegistryModule(connectorConfigBuilder), + new ServletModule(), + Modules.combine(guiceModules)); + } +} |