diff --git a/core/src/main/java/software/sava/services/core/remote/call/BalancedErrorHandler.java b/core/src/main/java/software/sava/services/core/remote/call/BalancedErrorHandler.java index 2f72b68..63ef419 100644 --- a/core/src/main/java/software/sava/services/core/remote/call/BalancedErrorHandler.java +++ b/core/src/main/java/software/sava/services/core/remote/call/BalancedErrorHandler.java @@ -6,6 +6,14 @@ public interface BalancedErrorHandler { + static BalancedErrorHandler createFailAllHandler(final ErrorHandler errorHandler) { + return new FailAllBalancedItemErrorHandler<>(errorHandler); + } + + static BalancedErrorHandler createFailNoneHandler(final ErrorHandler errorHandler) { + return new FailNoneBalancedItemErrorHandler<>(errorHandler); + } + long onError(final BalancedItem item, final int errorCount, final String retryLogContext, diff --git a/core/src/main/java/software/sava/services/core/remote/call/BalancedItemErrorHandler.java b/core/src/main/java/software/sava/services/core/remote/call/FailAllBalancedItemErrorHandler.java similarity index 78% rename from core/src/main/java/software/sava/services/core/remote/call/BalancedItemErrorHandler.java rename to core/src/main/java/software/sava/services/core/remote/call/FailAllBalancedItemErrorHandler.java index 2e72409..6055601 100644 --- a/core/src/main/java/software/sava/services/core/remote/call/BalancedItemErrorHandler.java +++ b/core/src/main/java/software/sava/services/core/remote/call/FailAllBalancedItemErrorHandler.java @@ -4,9 +4,9 @@ import java.util.concurrent.TimeUnit; -final class BalancedItemErrorHandler extends RootBalancedErrorHandler { +final class FailAllBalancedItemErrorHandler extends RootBalancedErrorHandler { - BalancedItemErrorHandler(final ErrorHandler errorHandler) { + FailAllBalancedItemErrorHandler(final ErrorHandler errorHandler) { super(errorHandler); } diff --git a/core/src/main/java/software/sava/services/core/remote/call/FailNoneBalancedItemErrorHandler.java b/core/src/main/java/software/sava/services/core/remote/call/FailNoneBalancedItemErrorHandler.java new file mode 100644 index 0000000..42184e2 --- /dev/null +++ b/core/src/main/java/software/sava/services/core/remote/call/FailNoneBalancedItemErrorHandler.java @@ -0,0 +1,21 @@ +package software.sava.services.core.remote.call; + +import software.sava.services.core.remote.load_balance.BalancedItem; + +import java.util.concurrent.TimeUnit; + +final class FailNoneBalancedItemErrorHandler extends RootBalancedErrorHandler { + + FailNoneBalancedItemErrorHandler(final ErrorHandler errorHandler) { + super(errorHandler); + } + + @Override + public long onError(final BalancedItem item, + final int errorCount, + final String retryLogContext, + final RuntimeException exception, + final TimeUnit timeUnit) { + return errorHandler.onError(errorCount, retryLogContext, exception, timeUnit); + } +}