Skip to content

Commit fff968e

Browse files
garyrussellartembilan
authored andcommitted
Add Duration overloads to Pollers factory
- test adds coverage to all time-based factory methods
1 parent 8002275 commit fff968e

File tree

2 files changed

+79
-1
lines changed
  • spring-integration-core/src

2 files changed

+79
-1
lines changed

spring-integration-core/src/main/java/org/springframework/integration/dsl/Pollers.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016 the original author or authors.
2+
* Copyright 2016-2019 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
1616

1717
package org.springframework.integration.dsl;
1818

19+
import java.time.Duration;
1920
import java.util.TimeZone;
2021
import java.util.concurrent.TimeUnit;
2122

@@ -29,6 +30,7 @@
2930
* variants.
3031
*
3132
* @author Artem Bilan
33+
* @author Gary Russell
3234
*
3335
* @since 5.0
3436
*/
@@ -38,13 +40,22 @@ public static PollerSpec trigger(Trigger trigger) {
3840
return new PollerSpec(trigger);
3941
}
4042

43+
public static PollerSpec fixedRate(Duration period) {
44+
return fixedRate(period.toMillis());
45+
}
46+
4147
public static PollerSpec fixedRate(long period) {
4248
return fixedRate(period, null);
4349
}
4450

4551
public static PollerSpec fixedRate(long period, TimeUnit timeUnit) {
4652
return fixedRate(period, timeUnit, 0);
4753
}
54+
55+
public static PollerSpec fixedRate(Duration period, Duration initialDelay) {
56+
return fixedRate(period.toMillis(), initialDelay.toMillis());
57+
}
58+
4859
public static PollerSpec fixedRate(long period, long initialDelay) {
4960
return periodicTrigger(period, null, true, initialDelay);
5061
}
@@ -53,10 +64,18 @@ public static PollerSpec fixedRate(long period, TimeUnit timeUnit, long initialD
5364
return periodicTrigger(period, timeUnit, true, initialDelay);
5465
}
5566

67+
public static PollerSpec fixedDelay(Duration period) {
68+
return fixedDelay(period.toMillis());
69+
}
70+
5671
public static PollerSpec fixedDelay(long period) {
5772
return fixedDelay(period, null);
5873
}
5974

75+
public static PollerSpec fixedDelay(Duration period, Duration initialDelay) {
76+
return fixedDelay(period.toMillis(), initialDelay.toMillis());
77+
}
78+
6079
public static PollerSpec fixedDelay(long period, TimeUnit timeUnit) {
6180
return fixedDelay(period, timeUnit, 0);
6281
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/*
2+
* Copyright 2019 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.springframework.integration.dsl;
18+
19+
import static org.assertj.core.api.Assertions.assertThat;
20+
21+
import java.time.Duration;
22+
import java.util.concurrent.TimeUnit;
23+
24+
import org.junit.jupiter.api.Test;
25+
26+
import org.springframework.scheduling.support.PeriodicTrigger;
27+
28+
/**
29+
* @author Gary Russell
30+
* @since 5.1.4
31+
*
32+
*/
33+
public class PollersTests {
34+
35+
@Test
36+
public void testDurations() {
37+
PeriodicTrigger trigger = (PeriodicTrigger) Pollers.fixedDelay(Duration.ofMinutes(1L)).get().getTrigger();
38+
assertThat(trigger.getPeriod()).isEqualTo(60_000L);
39+
assertThat(trigger.getTimeUnit()).isEqualTo(TimeUnit.MILLISECONDS);
40+
assertThat(trigger.isFixedRate()).isFalse();
41+
trigger = (PeriodicTrigger) Pollers.fixedDelay(Duration.ofMinutes(1L), Duration.ofSeconds(10L))
42+
.get().getTrigger();
43+
assertThat(trigger.getPeriod()).isEqualTo(60_000L);
44+
assertThat(trigger.getInitialDelay()).isEqualTo(10_000L);
45+
assertThat(trigger.getTimeUnit()).isEqualTo(TimeUnit.MILLISECONDS);
46+
assertThat(trigger.isFixedRate()).isFalse();
47+
trigger = (PeriodicTrigger) Pollers.fixedRate(Duration.ofMinutes(1L)).get().getTrigger();
48+
assertThat(trigger.getPeriod()).isEqualTo(60_000L);
49+
assertThat(trigger.getTimeUnit()).isEqualTo(TimeUnit.MILLISECONDS);
50+
assertThat(trigger.isFixedRate()).isTrue();
51+
trigger = (PeriodicTrigger) Pollers.fixedRate(Duration.ofMinutes(1L), Duration.ofSeconds(10L))
52+
.get().getTrigger();
53+
assertThat(trigger.getPeriod()).isEqualTo(60_000L);
54+
assertThat(trigger.getInitialDelay()).isEqualTo(10_000L);
55+
assertThat(trigger.getTimeUnit()).isEqualTo(TimeUnit.MILLISECONDS);
56+
assertThat(trigger.isFixedRate()).isTrue();
57+
}
58+
59+
}

0 commit comments

Comments
 (0)