Support for bean refs in event SpEL condition

Issue: SPR-13814
This commit is contained in:
Stephane Nicoll
2015-12-22 11:30:40 +01:00
parent 9b5e47026c
commit d444ef4871
3 changed files with 35 additions and 3 deletions

View File

@@ -462,6 +462,10 @@ public class AnnotationDrivenEventListenerTests {
this.context.publishEvent(timestamp);
this.eventCollector.assertEvent(listener, event, "OK", timestamp);
this.eventCollector.assertTotalEventsCount(3);
this.context.publishEvent(42d);
this.eventCollector.assertEvent(listener, event, "OK", timestamp, 42d);
this.eventCollector.assertTotalEventsCount(4);
}
@Test
@@ -483,6 +487,10 @@ public class AnnotationDrivenEventListenerTests {
this.context.publishEvent(maxLong);
this.eventCollector.assertNoEventReceived(listener);
this.eventCollector.assertTotalEventsCount(0);
this.context.publishEvent(24d);
this.eventCollector.assertNoEventReceived(listener);
this.eventCollector.assertTotalEventsCount(0);
}
@Test
@@ -534,6 +542,18 @@ public class AnnotationDrivenEventListenerTests {
public CountDownLatch testCountDownLatch() {
return new CountDownLatch(1);
}
@Bean
public TestConditionEvaluator conditionEvaluator() {
return new TestConditionEvaluator();
}
static class TestConditionEvaluator {
public boolean valid(Double ratio) {
return new Double(42).equals(ratio);
}
}
}
@@ -810,6 +830,11 @@ public class AnnotationDrivenEventListenerTests {
public void handleTimestamp(Long timestamp) {
collectEvent(timestamp);
}
@EventListener(condition = "@conditionEvaluator.valid(#p0)")
public void handleRatio(Double ratio) {
collectEvent(ratio);
}
}