Skip to content

Commit 3bd773f

Browse files
committed
Simplified listener tests.
Removed interceptor. Save listener state on static variables.
1 parent a36dd6a commit 3bd773f

10 files changed

Lines changed: 58 additions & 97 deletions

File tree

batch/batch-listeners/src/main/java/org/javaee7/batch/listeners/BatchListener.java

Lines changed: 0 additions & 17 deletions
This file was deleted.

batch/batch-listeners/src/main/java/org/javaee7/batch/listeners/BatchListenerInterceptor.java

Lines changed: 0 additions & 25 deletions
This file was deleted.
Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,51 @@
11
package org.javaee7.batch.listeners;
22

3-
import javax.inject.Singleton;
4-
import java.util.HashMap;
5-
import java.util.Map;
6-
73
/**
84
* @author Roberto Cortez
95
*/
10-
@Singleton
116
public class BatchListenerRecorder {
12-
private Map<String, Integer> recordedMethodExecutions = new HashMap<>();
13-
14-
public void addListenerMethodExecution(Class klass, String method) {
15-
String key = getKey(klass, method);
16-
if (recordedMethodExecutions.containsKey(key)) {
17-
recordedMethodExecutions.put(key, recordedMethodExecutions.get(key) + 1);
18-
} else {
19-
recordedMethodExecutions.put(key, 1);
20-
}
7+
public static boolean jobListenerBeforeJob;
8+
public static boolean jobListenerAfterJob;
9+
10+
public static boolean stepListenerBeforeStep;
11+
public static boolean stepListenerAfterStep;
12+
13+
public static boolean chunkListenerBeforeChunk;
14+
public static boolean chunkListenerAfterChunk;
15+
16+
public static boolean readerListenerBeforeRead;
17+
public static boolean readerListenerAfterRead;
18+
public static boolean readerListenerOnReadError;
19+
20+
public static boolean processorListenerBeforeProcess;
21+
public static boolean processorListenerAfterProcess;
22+
public static boolean processorListenerOnProcessError;
23+
24+
public static boolean writerListenerBeforeWrite;
25+
public static boolean writerListenerAfterWrite;
26+
public static boolean writerListenerOnWriteError;
27+
28+
public static boolean isJobListenerExecuted() {
29+
return jobListenerBeforeJob && jobListenerAfterJob;
30+
}
31+
32+
public static boolean isStepListenerExecuted() {
33+
return stepListenerBeforeStep && stepListenerAfterStep;
34+
}
35+
36+
public static boolean isChunkListenerExecuted() {
37+
return chunkListenerBeforeChunk && chunkListenerAfterChunk;
2138
}
2239

23-
public boolean isListenerMethodExecuted(Class klass, String method) {
24-
return recordedMethodExecutions.containsKey(getKey(klass, method));
40+
public static boolean isReadListenerExecutedWithoutErrors() {
41+
return readerListenerBeforeRead && readerListenerAfterRead && !readerListenerOnReadError;
2542
}
2643

27-
public Integer totalListenerMethodExecutions(Class klass, String method) {
28-
Integer total = recordedMethodExecutions.get(getKey(klass, method));
29-
return total != null ? total : Integer.valueOf(0);
44+
public static boolean isWriteListenerExecutedWithoutErrors() {
45+
return writerListenerBeforeWrite && writerListenerAfterWrite && !writerListenerOnWriteError;
3046
}
3147

32-
private String getKey(Class klass, String method) {
33-
return klass.getName() + "." + method;
48+
public static boolean isProcessListenerExecutedWithoutErrors() {
49+
return processorListenerBeforeProcess && processorListenerAfterProcess && !processorListenerOnProcessError;
3450
}
3551
}

batch/batch-listeners/src/main/java/org/javaee7/batch/listeners/MyChunkListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,14 @@
5050
public class MyChunkListener extends AbstractChunkListener {
5151

5252
@Override
53-
@BatchListener
5453
public void beforeChunk() throws Exception {
54+
BatchListenerRecorder.chunkListenerBeforeChunk = true;
5555
System.out.println("MyChunkListener.beforeChunk");
5656
}
5757

5858
@Override
59-
@BatchListener
6059
public void afterChunk() throws Exception {
60+
BatchListenerRecorder.chunkListenerAfterChunk = true;
6161
System.out.println("MyChunkListener.afterChunk");
6262
}
6363
}

batch/batch-listeners/src/main/java/org/javaee7/batch/listeners/MyItemProcessorListener.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,20 @@
5050
public class MyItemProcessorListener extends AbstractItemProcessListener {
5151

5252
@Override
53-
@BatchListener
5453
public void beforeProcess(Object item) throws Exception {
54+
BatchListenerRecorder.processorListenerBeforeProcess = true;
5555
System.out.println("MyItemProcessorListener.beforeProcess: " + item);
5656
}
5757

5858
@Override
59-
@BatchListener
6059
public void afterProcess(Object item, Object result) throws Exception {
60+
BatchListenerRecorder.processorListenerAfterProcess = true;
6161
System.out.println("MyItemProcessorListener.afterProcess: " + item + ", " + result);
6262
}
6363

6464
@Override
65-
@BatchListener
6665
public void onProcessError(Object item, Exception ex) throws Exception {
66+
BatchListenerRecorder.processorListenerOnProcessError = true;
6767
System.out.println("MyItemProcessorListener.onProcessError: " + item + ", " + ex.getLocalizedMessage());
6868
}
6969
}

batch/batch-listeners/src/main/java/org/javaee7/batch/listeners/MyItemReadListener.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,20 @@
5050
public class MyItemReadListener extends AbstractItemReadListener {
5151

5252
@Override
53-
@BatchListener
5453
public void beforeRead() throws Exception {
54+
BatchListenerRecorder.readerListenerBeforeRead = true;
5555
System.out.println("MyItemReadListener.beforeRead");
5656
}
5757

5858
@Override
59-
@BatchListener
6059
public void afterRead(Object item) throws Exception {
60+
BatchListenerRecorder.readerListenerAfterRead = true;
6161
System.out.println("MyItemReadListener.afterRead: " + item);
6262
}
6363

6464
@Override
65-
@BatchListener
6665
public void onReadError(Exception ex) throws Exception {
66+
BatchListenerRecorder.readerListenerOnReadError = true;
6767
System.out.println("MyItemReadListener.onReadError: " + ex.getLocalizedMessage());
6868
}
6969
}

batch/batch-listeners/src/main/java/org/javaee7/batch/listeners/MyItemWriteListener.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,20 +51,20 @@
5151
public class MyItemWriteListener extends AbstractItemWriteListener {
5252

5353
@Override
54-
@BatchListener
5554
public void beforeWrite(List items) throws Exception {
55+
BatchListenerRecorder.writerListenerBeforeWrite = true;
5656
System.out.println("MyItemWriteListener.beforeWrite: " + items);
5757
}
5858

5959
@Override
60-
@BatchListener
6160
public void afterWrite(List items) throws Exception {
61+
BatchListenerRecorder.writerListenerAfterWrite = true;
6262
System.out.println("MyItemWriteListener.afterWrite: " + items);
6363
}
6464

6565
@Override
66-
@BatchListener
6766
public void onWriteError(List items, Exception ex) throws Exception {
67+
BatchListenerRecorder.writerListenerOnWriteError = true;
6868
System.out.println("MyItemWriteListener.onError: " + items + ", " + ex.getLocalizedMessage());
6969
}
7070
}

batch/batch-listeners/src/main/java/org/javaee7/batch/listeners/MyJobListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,14 @@
5050
public class MyJobListener extends AbstractJobListener {
5151

5252
@Override
53-
@BatchListener
5453
public void beforeJob() {
54+
BatchListenerRecorder.jobListenerBeforeJob = true;
5555
System.out.println("MyJobListener.beforeJob");
5656
}
5757

5858
@Override
59-
@BatchListener
6059
public void afterJob() {
60+
BatchListenerRecorder.jobListenerAfterJob = true;
6161
System.out.println("MyJobListener.afterJob");
6262
}
6363
}

batch/batch-listeners/src/main/java/org/javaee7/batch/listeners/MyStepListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,14 @@
5050
public class MyStepListener extends AbstractStepListener {
5151

5252
@Override
53-
@BatchListener
5453
public void beforeStep() throws Exception {
54+
BatchListenerRecorder.stepListenerBeforeStep = true;
5555
System.out.println("MyStepListener.beforeStep");
5656
}
5757

5858
@Override
59-
@BatchListener
6059
public void afterStep() throws Exception {
60+
BatchListenerRecorder.stepListenerAfterStep = true;
6161
System.out.println("MyStepListener.afterStep");
6262
}
6363
}

batch/batch-listeners/src/test/java/org.javaee7.batch.listeners/BatchListenersTest.java

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -56,31 +56,18 @@ public void testBatchListeners() throws Exception {
5656
if (stepExecution.getStepName().equals("myStep")) {
5757
Map<Metric.MetricType, Long> metricsMap = BatchTestHelper.getMetricsMap(stepExecution.getMetrics());
5858

59-
for (Metric metric : stepExecution.getMetrics()) {
60-
System.out.println("metric = " + metric);
61-
}
62-
6359
assertEquals(10L, (long) metricsMap.get(Metric.MetricType.READ_COUNT));
6460
assertEquals(10L / 2L, (long) metricsMap.get(Metric.MetricType.WRITE_COUNT));
6561
assertEquals(10L / 3 + 10 % 3, (long) metricsMap.get(Metric.MetricType.COMMIT_COUNT));
6662
}
6763
}
6864

69-
assertTrue(batchListenerRecorder.isListenerMethodExecuted(MyJobListener.class, "beforeJob"));
70-
assertTrue(batchListenerRecorder.isListenerMethodExecuted(MyJobListener.class, "afterJob"));
71-
72-
assertTrue(batchListenerRecorder.isListenerMethodExecuted(MyStepListener.class, "beforeStep"));
73-
assertTrue(batchListenerRecorder.isListenerMethodExecuted(MyStepListener.class, "afterStep"));
74-
75-
assertTrue(batchListenerRecorder.isListenerMethodExecuted(MyChunkListener.class, "beforeChunk"));
76-
assertTrue(batchListenerRecorder.isListenerMethodExecuted(MyChunkListener.class, "afterChunk"));
77-
78-
assertTrue(batchListenerRecorder.isListenerMethodExecuted(MyItemReadListener.class, "beforeRead"));
79-
assertTrue(batchListenerRecorder.isListenerMethodExecuted(MyItemReadListener.class, "afterRead"));
80-
assertTrue(batchListenerRecorder.isListenerMethodExecuted(MyItemWriteListener.class, "beforeWrite"));
81-
assertTrue(batchListenerRecorder.isListenerMethodExecuted(MyItemWriteListener.class, "afterWrite"));
82-
assertTrue(batchListenerRecorder.isListenerMethodExecuted(MyItemProcessorListener.class, "beforeProcess"));
83-
assertTrue(batchListenerRecorder.isListenerMethodExecuted(MyItemProcessorListener.class, "afterProcess"));
65+
assertTrue(BatchListenerRecorder.isJobListenerExecuted());
66+
assertTrue(BatchListenerRecorder.isStepListenerExecuted());
67+
assertTrue(BatchListenerRecorder.isChunkListenerExecuted());
68+
assertTrue(BatchListenerRecorder.isReadListenerExecutedWithoutErrors());
69+
assertTrue(BatchListenerRecorder.isProcessListenerExecutedWithoutErrors());
70+
assertTrue(BatchListenerRecorder.isWriteListenerExecutedWithoutErrors());
8471

8572
assertEquals(jobExecution.getBatchStatus(), BatchStatus.COMPLETED);
8673
}

0 commit comments

Comments
 (0)