/** * Create proxy server in replay mode */ private ProxyServer createProxyServerInReplayMode(Builder builder) { ProxyModeControllerFactory proxyModeControllerFactory = new ProxyModeControllerFactory() { @Override public ProxyModeController create(HttpRequest httpRequest) { return new ReplayController(_sceneAccessLayer, httpRequest); } }; //Create Http connection flow for replay mode List<ConnectionFlowStep> httpReplayConnectionFlow = ConnectionFlowFactory.createClientOnlyHttpConnectionFlow(); ProxyServer.Builder proxyServerBuilder = new ProxyServer.Builder().proxyModeControllerFactory(proxyModeControllerFactory) .connectionFlow(Protocol.HTTP, httpReplayConnectionFlow).host(builder._host).port(builder._port); if (requiresHttps(builder)) { //Create Https connection flow for replay mode List<ConnectionFlowStep> httpsReplayConnectionFlow = ConnectionFlowFactory .createClientOnlyHttpsConnectionFlow(builder._rootCertificateInputStream, builder._rootCertificatePassphrase, builder._certificateAuthority); proxyServerBuilder.connectionFlow(Protocol.HTTPS, httpsReplayConnectionFlow); } return proxyServerBuilder.build(); }
/** * Create proxy server in record mode */ private ProxyServer createProxyServerInRecordMode(Builder builder) { ProxyModeControllerFactory proxyModeControllerFactory = new ProxyModeControllerFactory() { @Override public ProxyModeController create(HttpRequest httpRequest) { return new RecordController(_sceneAccessLayer, httpRequest); } }; //Create Http connection flow for record mode List<ConnectionFlowStep> httpConnectionFlow = ConnectionFlowFactory.createFullHttpConnectionFlow(); ProxyServer.Builder proxyServerBuilder = new ProxyServer.Builder().proxyModeControllerFactory(proxyModeControllerFactory) .connectionFlow(Protocol.HTTP, httpConnectionFlow).host(builder._host).port(builder._port); if (requiresHttps(builder)) { //Create Https connection flow for record mode List<ConnectionFlowStep> httpsConnectionFlow = ConnectionFlowFactory .createFullHttpsConnectionFlow(builder._rootCertificateInputStream, builder._rootCertificatePassphrase, builder._certificateAuthority); proxyServerBuilder.connectionFlow(Protocol.HTTPS, httpsConnectionFlow); } return proxyServerBuilder.build(); }