Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,13 @@
package org.mule.runtime.core.api.retry.policy;

import org.mule.runtime.api.scheduler.Scheduler;
import org.mule.runtime.core.api.retry.RetryCallback;
import org.mule.runtime.core.api.retry.RetryContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
Expand All @@ -19,6 +24,9 @@
*/
public final class NoRetryPolicyTemplate extends AbstractPolicyTemplate {

private static final Logger LOGGER = LoggerFactory.getLogger(NoRetryPolicyTemplate.class);

@Override
public RetryPolicy createRetryInstance() {
return new NoRetryPolicy();
}
Expand All @@ -30,7 +38,8 @@ public boolean isEnabled() {

protected static class NoRetryPolicy implements RetryPolicy {

public PolicyStatus applyPolicy(Throwable cause) {
@Override
public PolicyStatus applyPolicy(Throwable cause) {
return PolicyStatus.policyExhausted(cause);
}

Expand All @@ -43,7 +52,44 @@ public <T> CompletableFuture<T> applyPolicy(Supplier<CompletableFuture<T>> compl
}
}

@Override
public String toString() {
return "NoRetryPolicy{}";
}

private static class DoNothingRetryCallback implements RetryCallback {


private static final Logger INNER_LOGGER = LoggerFactory.getLogger(NoRetryPolicyTemplate.DoNothingRetryCallback.class);
private NoRetryPolicyTemplate noRetryPolicyTemplate;

public DoNothingRetryCallback(NoRetryPolicyTemplate aNoRetryPolicyTemplate) {
noRetryPolicyTemplate = aNoRetryPolicyTemplate;
}

@Override
public void doWork(RetryContext aContext) {
INNER_LOGGER.info("No nothing with " + aContext);
}

@Override
public String getWorkDescription() {
return "Do Nothing";
}

@Override
public Object getWorkOwner() {
return noRetryPolicyTemplate;
}

}

/**
*
*/
@Override
public RetryContext execute(RetryCallback aCallback, Executor aWorkManager) throws Exception {
LOGGER.debug("Skip aCallback={}",aCallback);
return super.execute(new DoNothingRetryCallback(this), aWorkManager);
}
}