public ResultWithRetryCount invoke(final String stepTokenId, List<String> args) throws Exception { ResultWithRetryCount result; StepRetry retry = foundStepInvoker.getRetry(); if ( retry.isValid()) { result = invokeWithRetry(stepTokenId, args, retry); } else { result = createResult(foundStepInvoker.invoke(stepTokenId, args), 0); } return result; }
public static StepRetry createStepRetry(long retryDuration, long retryInterval) { return StepRetry.isValidRetry(retryDuration, retryInterval) ? new DefaultStepRetry(retryDuration, retryInterval) : StepRetry.NO_RETRY; }
private void addLocalHandlerClassSteps(List<Object> handlerInstances, CompositeStepInvokerProvider compositeStepProvider) { for ( Object handler : handlerInstances) { HandlerClassInvokerFactory f = new HandlerClassInvokerFactory(handler); compositeStepProvider.addChild(f); } }
private ResultWithRetryCount invokeWithRetry(final String stepTokenId, List<String> args, StepRetry retry) { Object result; if ( log.isTraceEnabled()) { log.trace("Wrapping step " + foundStepInvoker.getStepPattern() + " with a StepRetry decorator"); } long duration = retry.getDuration(); long interval = retry.getInterval(); UntilFirstPassInvoker i = new UntilFirstPassInvoker(foundStepInvoker, duration, MILLISECONDS, interval); result = i.invoke(stepTokenId, args); return createResult(result, i.getRetryAttempts()); } }
default boolean isValid() { return isValidRetry(getDuration(), getInterval()); }
@Override public Pattern getStepPattern() { return wrappedInvoker.getStepPattern(); }
private Object invokeAndGetResult(StepToken step, StepMatcher stepMatcher, StepInvoker foundStepInvoker) throws Exception { StepRetryDecorator retryInvoker = new StepRetryDecorator(foundStepInvoker); ResultWithRetryCount resultWithRetryCount = retryInvoker.invoke( step.getTokenId(), stepMatcher.getInvokerArgs() ); step.setRetryAttempts(resultWithRetryCount.getRetryAttempts()); return resultWithRetryCount.getResult(); }
/** * @return true if this step is 'pending' (a placeholder for future implementation) and should not be invoked */ public boolean isPending() { return wrappedInvoker.isPending(); }
@Override public String getPendingMessage() { return wrappedInvoker.getPendingMessage(); }
@Override public StepRetry getRetry() { return wrappedInvoker.getRetry(); }
@Override public String getId() { return wrappedInvoker.getId(); }
@Override public String getTechnicalDescription() { return wrappedInvoker.getTechnicalDescription(); }
@Override public Object invoke(String stepTokenId, List<String> args) throws Exception { return wrappedInvoker.invoke(stepTokenId, args); }
@Override public boolean isDeprecated() { return wrappedInvoker.isDeprecated(); } }
@Override public String getCategory() { return wrappedInvoker.getCategory(); }
private void createMethodInvokers() { if ( invokersForMethods == null) { invokersForMethods = getStepInvokersForAnnotatedMethods(); } }
public Pattern getStepPattern() { return wrappedInvoker.getStepPattern(); }
@Override public boolean isPending() { return wrappedInvoker.isPending(); }
public String getId() { return wrappedInvoker.getId(); }
public String getCategory() { return wrappedInvoker.getCategory(); } }