@Test public void no_error_no_consultant_defined_just_runs_through_and_returns_result() throws Exception{ TestResult result = executorToTest.executeResilient(action); assertNotNull(result); }
public R executeResilient(ActionWhichShallBeResilient<R> action) throws Exception { Objects.requireNonNull(action, "action may not be null!"); fallThroughSupport.handleFallThrough(); ResilienctActionContext context = new ResilienctActionContext(); R result = null; do { try { result = action.execute(); } catch (Exception e) { handleException(context, e); } } while (result == null && context.isRetryNecessary()); return result; }
ResilientActionExecutor { public R executeResilient(ActionWhichShallBeResilient<R> action) throws Exception { Objects.requireNonNull(action, "action may not be null!"); fallThroughSupport.handleFallThrough(); ResilienctActionContext context = new ResilienctActionContext(); R result = null; do { try { result = action.execute(); } catch (Exception e) { handleException(context, e); } } while (result == null && context.isRetryNecessary()); return result; } }
ResilientActionExecutor { public R executeResilient(ActionWhichShallBeResilient<R> action) throws Exception { Objects.requireNonNull(action, "action may not be null!"); fallThroughSupport.handleFallThrough(); ResilienctActionContext context = new ResilienctActionContext(); R result = null; do { try { result = action.execute(); } catch (Exception e) { handleException(context, e); } } while (result == null && context.isRetryNecessary()); return result; }  }
ResilientActionExecutor { public R executeResilient(ActionWhichShallBeResilient<R> action) throws Exception { Objects.requireNonNull(action, "action may not be null!"); fallThroughSupport.handleFallThrough(); ResilienctActionContext context = new ResilienctActionContext(); R result = null; do { try { result = action.execute(); } catch (Exception e) { handleException(context, e); } } while (result == null && context.isRetryNecessary()); return result; }  R executeResilient(ActionWhichShallBeResilient<R> action); void add(ResilienceConsultant consultant); boolean containsConsultant(Class<? extends ResilienceConsultant> consultantClass); }
ResilientActionExecutor { public R executeResilient(ActionWhichShallBeResilient<R> action) throws Exception { Objects.requireNonNull(action, "action may not be null!"); fallThroughSupport.handleFallThrough(); ResilienctActionContext context = new ResilienctActionContext(); R result = null; do { try { result = action.execute(); } catch (Exception e) { handleException(context, e); } } while (result == null && context.isRetryNecessary()); return result; }  R executeResilient(ActionWhichShallBeResilient<R> action); void add(ResilienceConsultant consultant); boolean containsConsultant(Class<? extends ResilienceConsultant> consultantClass);  }