summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/TestDrivers.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
commit72231250ed81e10d66bfe70701e64fa5fe50f712 (patch)
tree2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /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.java95
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));
+ }
+}