diff --git a/common/source/java/ch/systemsx/cisd/common/api/retry/RetryCaller.java b/common/source/java/ch/systemsx/cisd/common/api/retry/RetryCaller.java index 47f04ff6f70734092f84cd502e1d983547dfdd76..70fab4f58cb9c7fe3005a1d4a8eb4f376fa6acf2 100644 --- a/common/source/java/ch/systemsx/cisd/common/api/retry/RetryCaller.java +++ b/common/source/java/ch/systemsx/cisd/common/api/retry/RetryCaller.java @@ -24,18 +24,22 @@ import org.springframework.remoting.RemoteConnectFailureException; import ch.systemsx.cisd.common.api.retry.config.DefaultRetryConfiguration; import ch.systemsx.cisd.common.api.retry.config.RetryConfiguration; +import ch.systemsx.cisd.common.logging.ConsoleLogger; +import ch.systemsx.cisd.common.logging.ISimpleLogger; +import ch.systemsx.cisd.common.logging.LogLevel; /** * @author pkupczyk */ public abstract class RetryCaller<T, E extends Throwable> { - - private RetryConfiguration configuration; + private final RetryConfiguration configuration; private int retryCounter; private int waitingTime; + + private final ISimpleLogger logger; public RetryCaller() { @@ -43,6 +47,11 @@ public abstract class RetryCaller<T, E extends Throwable> } public RetryCaller(RetryConfiguration configuration) + { + this(configuration, new ConsoleLogger(System.err)); + } + + public RetryCaller(RetryConfiguration configuration, ISimpleLogger logger) { if (configuration == null) { @@ -64,6 +73,7 @@ public abstract class RetryCaller<T, E extends Throwable> this.configuration = configuration; this.waitingTime = configuration.getWaitingTimeBetweenRetries(); + this.logger = logger; } protected abstract T call() throws E; @@ -82,11 +92,11 @@ public abstract class RetryCaller<T, E extends Throwable> { if (shouldRetry()) { - System.err.println("Communication failed - will retry"); + logger.log(LogLevel.WARN, "Communication failed - will retry"); waitForRetry(); } else { - System.err.println("Communication failed - will NOT retry"); + logger.log(LogLevel.WARN, "Communication failed - will NOT retry"); throw e; } } else