Skip to content
Snippets Groups Projects
Commit ef356b9e authored by brinn's avatar brinn
Browse files

Allow to set a logger for logging failures in the RetryCaller.

SVN: 28660
parent 9226879b
No related branches found
No related tags found
No related merge requests found
...@@ -24,18 +24,22 @@ import org.springframework.remoting.RemoteConnectFailureException; ...@@ -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.DefaultRetryConfiguration;
import ch.systemsx.cisd.common.api.retry.config.RetryConfiguration; 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 * @author pkupczyk
*/ */
public abstract class RetryCaller<T, E extends Throwable> public abstract class RetryCaller<T, E extends Throwable>
{ {
private final RetryConfiguration configuration;
private RetryConfiguration configuration;
private int retryCounter; private int retryCounter;
private int waitingTime; private int waitingTime;
private final ISimpleLogger logger;
public RetryCaller() public RetryCaller()
{ {
...@@ -43,6 +47,11 @@ public abstract class RetryCaller<T, E extends Throwable> ...@@ -43,6 +47,11 @@ public abstract class RetryCaller<T, E extends Throwable>
} }
public RetryCaller(RetryConfiguration configuration) public RetryCaller(RetryConfiguration configuration)
{
this(configuration, new ConsoleLogger(System.err));
}
public RetryCaller(RetryConfiguration configuration, ISimpleLogger logger)
{ {
if (configuration == null) if (configuration == null)
{ {
...@@ -64,6 +73,7 @@ public abstract class RetryCaller<T, E extends Throwable> ...@@ -64,6 +73,7 @@ public abstract class RetryCaller<T, E extends Throwable>
this.configuration = configuration; this.configuration = configuration;
this.waitingTime = configuration.getWaitingTimeBetweenRetries(); this.waitingTime = configuration.getWaitingTimeBetweenRetries();
this.logger = logger;
} }
protected abstract T call() throws E; protected abstract T call() throws E;
...@@ -82,11 +92,11 @@ public abstract class RetryCaller<T, E extends Throwable> ...@@ -82,11 +92,11 @@ public abstract class RetryCaller<T, E extends Throwable>
{ {
if (shouldRetry()) if (shouldRetry())
{ {
System.err.println("Communication failed - will retry"); logger.log(LogLevel.WARN, "Communication failed - will retry");
waitForRetry(); waitForRetry();
} else } else
{ {
System.err.println("Communication failed - will NOT retry"); logger.log(LogLevel.WARN, "Communication failed - will NOT retry");
throw e; throw e;
} }
} else } else
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment