private void handleMehtodTransformError(List<String> errorsList, MethodCallBuilder methodCallBuilder, Exception exception) { if (errorHandler.isPresent()) { errorsList.add("Unable to JSON parse body :: " + exception.getMessage()); final MethodCall<Object> methodCall = methodCallBuilder.build(); final CaptureRequestInterceptor captureRequestInterceptor = new CaptureRequestInterceptor(); captureRequestInterceptor.before(methodCall); errorHandler.get().accept(exception); captureRequestInterceptor.after(methodCall, null); } else { errorsList.add("Unable to JSON parse body :: " + exception.getMessage()); logger.warn("Unable to parse object", exception); } }
@After public void tearDown() { captureRequestInterceptor.after(null, null); }
@Test public void testNoOriginatingRequest() throws Exception { MethodCallBuilder methodCallBuilder = new MethodCallBuilder(); methodCallBuilder.setName("Method 1"); captureRequestInterceptor.before(methodCallBuilder.build()); assertEquals("Method 1", requestContext.getMethodCall().get().name()); captureRequestInterceptor.after(methodCallBuilder.build(), null); assertFalse(requestContext.getMethodCall().isPresent()); }
@Test public void testOriginatingMethod() throws Exception { HttpRequestBuilder httpRequestBuilder = HttpRequestBuilder.httpRequestBuilder(); httpRequestBuilder.setUri("/foo"); MethodCallBuilder methodCallBuilder = MethodCallBuilder.methodCallBuilder(); methodCallBuilder.setName("Method 1"); methodCallBuilder.setOriginatingRequest(httpRequestBuilder.build()); methodCallBuilder.setOriginatingRequest(methodCallBuilder.build()); methodCallBuilder.setName("Method 2"); captureRequestInterceptor.before(methodCallBuilder.build()); assertEquals("Method 2", requestContext.getMethodCall().get().name()); assertTrue(httpContext.getHttpRequest().isPresent()); captureRequestInterceptor.after(methodCallBuilder.build(), null); assertFalse(requestContext.getMethodCall().isPresent()); }
private void handleMehtodTransformError(List<String> errorsList, MethodCallBuilder methodCallBuilder, Exception exception) { if (errorHandler.isPresent()) { errorsList.add("Unable to JSON parse body :: " + exception.getMessage()); final MethodCall<Object> methodCall = methodCallBuilder.build(); final CaptureRequestInterceptor captureRequestInterceptor = new CaptureRequestInterceptor(); captureRequestInterceptor.before(methodCall); errorHandler.get().accept(exception); captureRequestInterceptor.after(methodCall, null); } else { errorsList.add("Unable to JSON parse body :: " + exception.getMessage()); logger.warn("Unable to parse object", exception); } }
@Test public void testIntegrationWithServiceBundle() throws Exception { mdcForHttpRequestInterceptor = new SetupMdcForHttpRequestInterceptor(Sets.set("foo")); final CaptureRequestInterceptor captureRequestInterceptor = new CaptureRequestInterceptor(); captureRequestInterceptor.before(methodCallBuilder.setName("restMethod").setOriginatingRequest(httpRequest).build()); final ServiceBundle serviceBundle = ServiceBundleBuilder.serviceBundleBuilder() .setBeforeMethodCallOnServiceQueue(BeforeMethodCallChain.beforeMethodCallChain(captureRequestInterceptor, mdcForHttpRequestInterceptor)) .setAfterMethodCallOnServiceQueue(AfterMethodCallChain.afterMethodCallChain(captureRequestInterceptor, mdcForHttpRequestInterceptor)) .setBeforeMethodSent(new ForwardCallMethodInterceptor(new RequestContext())).build().startServiceBundle(); serviceBundle.addServiceObject("my", new MyServiceImpl()); final MyService localProxy = serviceBundle.createLocalProxy(MyService.class, "my"); final AsyncFutureCallback<String> callback = AsyncFutureBuilder.asyncFutureBuilder().build(String.class); localProxy.getRequestURI(callback); localProxy.clientProxyFlush(); assertEquals("/foo", callback.get()); final AsyncFutureCallback<Map<String, String>> callbackMap = AsyncFutureBuilder.asyncFutureBuilder() .buildMap(String.class, String.class); localProxy.getMDC(callbackMap); localProxy.clientProxyFlush(); validate(callbackMap.get()); captureRequestInterceptor.after(null, null); serviceBundle.stop(); }
captureRequestInterceptor.before(methodCall); errorHandler.get().accept(exception); captureRequestInterceptor.after(methodCall, null);