Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 417cc86

Browse files
committed
PR for CallExecutor does not know the type of a result #72
1 parent dd311a3 commit 417cc86

File tree

5 files changed

+30
-23
lines changed

5 files changed

+30
-23
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.evanlennick</groupId>
88
<artifactId>retry4j</artifactId>
9-
<version>0.15.0-SNAPSHOT</version>
9+
<version>0.15.1-SNAPSHOT</version>
1010

1111
<name>${project.groupId}:${project.artifactId}</name>
1212
<description>Library for retrying Java logic.</description>

src/main/java/com/evanlennick/retry4j/AsyncCallExecutor.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ public class AsyncCallExecutor<T> implements RetryExecutor<T, CompletableFuture<
1919

2020
private ExecutorService executorService;
2121

22-
private RetryListener afterFailedTryListener;
22+
private RetryListener<T> afterFailedTryListener;
2323

24-
private RetryListener beforeNextTryListener;
24+
private RetryListener<T> beforeNextTryListener;
2525

26-
private RetryListener onFailureListener;
26+
private RetryListener<T> onFailureListener;
2727

28-
private RetryListener onSuccessListener;
28+
private RetryListener<T> onSuccessListener;
2929

30-
private RetryListener onCompletionListener;
30+
private RetryListener<T> onCompletionListener;
3131

3232
public AsyncCallExecutor(RetryConfig config) {
3333
this(config, null);
@@ -75,27 +75,27 @@ private void executeFuture(Callable<T> callable, String callName, CallExecutor<T
7575
}
7676
}
7777

78-
public AsyncCallExecutor<T> afterFailedTry(RetryListener listener) {
78+
public AsyncCallExecutor<T> afterFailedTry(RetryListener<T> listener) {
7979
this.afterFailedTryListener = listener;
8080
return this;
8181
}
8282

83-
public AsyncCallExecutor<T> beforeNextTry(RetryListener listener) {
83+
public AsyncCallExecutor<T> beforeNextTry(RetryListener<T> listener) {
8484
this.beforeNextTryListener = listener;
8585
return this;
8686
}
8787

88-
public AsyncCallExecutor<T> onCompletion(RetryListener listener) {
88+
public AsyncCallExecutor<T> onCompletion(RetryListener<T> listener) {
8989
this.onCompletionListener = listener;
9090
return this;
9191
}
9292

93-
public AsyncCallExecutor<T> onSuccess(RetryListener listener) {
93+
public AsyncCallExecutor<T> onSuccess(RetryListener<T> listener) {
9494
this.onSuccessListener = listener;
9595
return this;
9696
}
9797

98-
public AsyncCallExecutor<T> onFailure(RetryListener listener) {
98+
public AsyncCallExecutor<T> onFailure(RetryListener<T> listener) {
9999
this.onFailureListener = listener;
100100
return this;
101101
}

src/main/java/com/evanlennick/retry4j/CallExecutor.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ public class CallExecutor<T> implements RetryExecutor<T, Status<T>> {
2525

2626
private RetryConfig config;
2727

28-
private RetryListener afterFailedTryListener;
28+
private RetryListener<T> afterFailedTryListener;
2929

30-
private RetryListener beforeNextTryListener;
30+
private RetryListener<T> beforeNextTryListener;
3131

32-
private RetryListener onFailureListener;
32+
private RetryListener<T> onFailureListener;
3333

34-
private RetryListener onSuccessListener;
34+
private RetryListener<T> onSuccessListener;
3535

36-
private RetryListener onCompletionListener;
36+
private RetryListener<T> onCompletionListener;
3737

3838
private Exception lastKnownExceptionThatCausedRetry;
3939

@@ -218,27 +218,27 @@ public void setConfig(RetryConfig config) {
218218
this.config = config;
219219
}
220220

221-
public CallExecutor<T> afterFailedTry(RetryListener listener) {
221+
public CallExecutor<T> afterFailedTry(RetryListener<T> listener) {
222222
this.afterFailedTryListener = listener;
223223
return this;
224224
}
225225

226-
public CallExecutor<T> beforeNextTry(RetryListener listener) {
226+
public CallExecutor<T> beforeNextTry(RetryListener<T> listener) {
227227
this.beforeNextTryListener = listener;
228228
return this;
229229
}
230230

231-
public CallExecutor<T> onCompletion(RetryListener listener) {
231+
public CallExecutor<T> onCompletion(RetryListener<T> listener) {
232232
this.onCompletionListener = listener;
233233
return this;
234234
}
235235

236-
public CallExecutor<T> onSuccess(RetryListener listener) {
236+
public CallExecutor<T> onSuccess(RetryListener<T> listener) {
237237
this.onSuccessListener = listener;
238238
return this;
239239
}
240240

241-
public CallExecutor<T> onFailure(RetryListener listener) {
241+
public CallExecutor<T> onFailure(RetryListener<T> listener) {
242242
this.onFailureListener = listener;
243243
return this;
244244
}

src/main/java/com/evanlennick/retry4j/listener/RetryListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import com.evanlennick.retry4j.Status;
44

5-
public interface RetryListener {
5+
public interface RetryListener<T> {
66

7-
void onEvent(Status status);
7+
void onEvent(Status<T> status);
88

99
}

src/test/java/com/evanlennick/retry4j/CallExecutorTest_ListenersTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,13 @@ public void verifyOnFailureListener_populatesException() {
193193
verify(dummyMock, timeout(1000)).listenersCallThis(isA(IllegalArgumentException.class));
194194
}
195195

196+
@Test
197+
public void verifyOnSuccessListener_resultHasTypeOfCallExecutor() {
198+
executor.onSuccess(status -> {
199+
String result = status.getResult(); //compile time check
200+
}).execute(callable);
201+
}
202+
196203
private class DummyMock {
197204

198205
public String listenersCallThis() {

0 commit comments

Comments
 (0)