@Override public Response render(ServeEvent serveEvent) { ResponseDefinition responseDefinition = serveEvent.getResponseDefinition(); if (!responseDefinition.wasConfigured()) { return Response.notConfigured(); } Response response = buildResponse(serveEvent); return applyTransformations(responseDefinition.getOriginalRequest(), responseDefinition, response, responseTransformers); }
public StubRequestHandler buildStubRequestHandler() { Map<String, PostServeAction> postServeActions = options.extensionsOfType(PostServeAction.class); return new StubRequestHandler( this, new StubResponseRenderer( options.filesRoot().child(FILES_ROOT), getGlobalSettingsHolder(), new ProxyResponseRenderer( options.proxyVia(), options.httpsSettings().trustStore(), options.shouldPreserveHostHeader(), options.proxyHostHeader(), globalSettingsHolder), ImmutableList.copyOf(options.extensionsOfType(ResponseTransformer.class).values()) ), this, postServeActions, requestJournal ); }
private Response applyTransformations(Request request, ResponseDefinition responseDefinition, Response response, List<ResponseTransformer> transformers) { if (transformers.isEmpty()) { return response; } ResponseTransformer transformer = transformers.get(0); Response newResponse = transformer.applyGlobally() || responseDefinition.hasTransformer(transformer) ? transformer.transform(request, response, fileSource, responseDefinition.getTransformerParameters()) : response; return applyTransformations(request, responseDefinition, newResponse, transformers.subList(1, transformers.size())); }
private Response buildResponse(ServeEvent serveEvent) { if (serveEvent.getResponseDefinition().isProxyResponse()) { return proxyResponseRenderer.render(serveEvent); } else { Response.Builder responseBuilder = renderDirectly(serveEvent); return responseBuilder.build(); } }
private static HttpHandler mockHandler(String originId, WireMockApp wireMockApp, WireMockConfiguration defaultConfig) { return newHandler(originId, new StubRequestHandler( wireMockApp, new StubResponseRenderer( defaultConfig.filesRoot().child(FILES_ROOT), wireMockApp.getGlobalSettingsHolder(), new ProxyResponseRenderer( defaultConfig.proxyVia(), defaultConfig.httpsSettings().trustStore(), defaultConfig.shouldPreserveHostHeader(), defaultConfig.proxyHostHeader() ) ) )); }