@Test public void shouldInvokeTheMethodAndNotProceedWithInterceptorStack() throws SecurityException, NoSuchMethodException, IOException, InterceptionException { ResourceMethod method = new DefaultResourceMethod(null, DogAlike.class.getMethod("bark")); DogAlike auau = mock(DogAlike.class); when(info.getParameters()).thenReturn(new Object[0]); interceptor.intercept(stack, method, auau); verify(auau).bark(); verify(stack).next(method, auau); verify(info).setResult("ok"); }
public void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance) throws InterceptionException { try { Method reflectionMethod = method.getMethod(); Object[] parameters = this.info.getParameters(); log.debug("Invoking {}", Stringnifier.simpleNameFor(reflectionMethod)); Object result = reflectionMethod.invoke(resourceInstance, parameters); if (validator.hasErrors()) { if (log.isDebugEnabled()) { try { validator.onErrorUse(nothing()); } catch (ValidationException e) { log.debug("Some validation errors occured: {}", e.getErrors()); } } throw new InterceptionException( "There are validation errors and you forgot to specify where to go. Please add in your method " + "something like:\n" + "validator.onErrorUse(page()).of(AnyController.class).anyMethod();\n" + "or any view that you like.\n" + "If you didn't add any validation error, it is possible that a conversion error had happened."); } if (reflectionMethod.getReturnType().equals(Void.TYPE)) { this.info.setResult("ok"); } else { this.info.setResult(result); } stack.next(method, resourceInstance); } catch (IllegalArgumentException e) { throw new InterceptionException(e); } catch (IllegalAccessException e) { throw new InterceptionException(e); } catch (InvocationTargetException e) { Throwable cause = e.getCause(); if (cause instanceof ValidationException) { log.trace("swallowing {}", cause); } else { throw new ApplicationLogicException("your controller raised an exception", cause); } } }
ExecuteMethodInterceptor implements Interceptor { public void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance) throws InterceptionException { try { Method reflectionMethod = method.getMethod(); Object[] parameters = this.info.getParameters(); log.debug("Invoking {}", Stringnifier.simpleNameFor(reflectionMethod)); Object result = reflectionMethod.invoke(resourceInstance, parameters); if (validator.hasErrors()) { if (log.isDebugEnabled()) { try { validator.onErrorUse(nothing()); } catch (ValidationException e) { log.debug("Some validation errors occured: {}", e.getErrors()); } } throw new InterceptionException( "There are validation errors and you forgot to specify where to go. Please add in your method " + "something like:\n" + "validator.onErrorUse(page()).of(AnyController.class).anyMethod();\n" + "or any view that you like.\n" + "If you didn't add any validation error, it is possible that a conversion error had happened."); } if (reflectionMethod.getReturnType().equals(Void.TYPE)) { this.info.setResult("ok"); } else { this.info.setResult(result); } stack.next(method, resourceInstance); } catch (IllegalArgumentException e) { throw new InterceptionException(e); } catch (IllegalAccessException e) { throw new InterceptionException(e); } catch (InvocationTargetException e) { Throwable cause = e.getCause(); if (cause instanceof ValidationException) { log.trace("swallowing {}", cause); } else { throw new ApplicationLogicException("your controller raised an exception", cause); } } } }
ExecuteMethodInterceptor implements Interceptor { public void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance) throws InterceptionException { try { Method reflectionMethod = method.getMethod(); Object[] parameters = this.info.getParameters(); log.debug("Invoking {}", Stringnifier.simpleNameFor(reflectionMethod)); Object result = reflectionMethod.invoke(resourceInstance, parameters); if (validator.hasErrors()) { if (log.isDebugEnabled()) { try { validator.onErrorUse(nothing()); } catch (ValidationException e) { log.debug("Some validation errors occured: {}", e.getErrors()); } } throw new InterceptionException( "There are validation errors and you forgot to specify where to go. Please add in your method " + "something like:\n" + "validator.onErrorUse(page()).of(AnyController.class).anyMethod();\n" + "or any view that you like.\n" + "If you didn't add any validation error, it is possible that a conversion error had happened."); } if (reflectionMethod.getReturnType().equals(Void.TYPE)) { this.info.setResult("ok"); } else { this.info.setResult(result); } stack.next(method, resourceInstance); } catch (IllegalArgumentException e) { throw new InterceptionException(e); } catch (IllegalAccessException e) { throw new InterceptionException(e); } catch (InvocationTargetException e) { Throwable cause = e.getCause(); if (cause instanceof ValidationException) { log.trace("swallowing {}", cause); } else { throw new ApplicationLogicException("your controller raised an exception", cause); } } } ExecuteMethodInterceptor(MethodInfo info, Validator validator); }
ExecuteMethodInterceptor implements Interceptor { public void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance) throws InterceptionException { try { Method reflectionMethod = method.getMethod(); Object[] parameters = this.info.getParameters(); log.debug("Invoking {}", Stringnifier.simpleNameFor(reflectionMethod)); Object result = reflectionMethod.invoke(resourceInstance, parameters); if (validator.hasErrors()) { if (log.isDebugEnabled()) { try { validator.onErrorUse(nothing()); } catch (ValidationException e) { log.debug("Some validation errors occured: {}", e.getErrors()); } } throw new InterceptionException( "There are validation errors and you forgot to specify where to go. Please add in your method " + "something like:\n" + "validator.onErrorUse(page()).of(AnyController.class).anyMethod();\n" + "or any view that you like.\n" + "If you didn't add any validation error, it is possible that a conversion error had happened."); } if (reflectionMethod.getReturnType().equals(Void.TYPE)) { this.info.setResult("ok"); } else { this.info.setResult(result); } stack.next(method, resourceInstance); } catch (IllegalArgumentException e) { throw new InterceptionException(e); } catch (IllegalAccessException e) { throw new InterceptionException(e); } catch (InvocationTargetException e) { Throwable cause = e.getCause(); if (cause instanceof ValidationException) { log.trace("swallowing {}", cause); } else { throw new ApplicationLogicException("your controller raised an exception", cause); } } } ExecuteMethodInterceptor(MethodInfo info, Validator validator); void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance); boolean accepts(ResourceMethod method); }
ExecuteMethodInterceptor implements Interceptor { public void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance) throws InterceptionException { try { Method reflectionMethod = method.getMethod(); Object[] parameters = this.info.getParameters(); log.debug("Invoking {}", Stringnifier.simpleNameFor(reflectionMethod)); Object result = reflectionMethod.invoke(resourceInstance, parameters); if (validator.hasErrors()) { if (log.isDebugEnabled()) { try { validator.onErrorUse(nothing()); } catch (ValidationException e) { log.debug("Some validation errors occured: {}", e.getErrors()); } } throw new InterceptionException( "There are validation errors and you forgot to specify where to go. Please add in your method " + "something like:\n" + "validator.onErrorUse(page()).of(AnyController.class).anyMethod();\n" + "or any view that you like.\n" + "If you didn't add any validation error, it is possible that a conversion error had happened."); } if (reflectionMethod.getReturnType().equals(Void.TYPE)) { this.info.setResult("ok"); } else { this.info.setResult(result); } stack.next(method, resourceInstance); } catch (IllegalArgumentException e) { throw new InterceptionException(e); } catch (IllegalAccessException e) { throw new InterceptionException(e); } catch (InvocationTargetException e) { Throwable cause = e.getCause(); if (cause instanceof ValidationException) { log.trace("swallowing {}", cause); } else { throw new ApplicationLogicException("your controller raised an exception", cause); } } } ExecuteMethodInterceptor(MethodInfo info, Validator validator); void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance); boolean accepts(ResourceMethod method);  }