Added the 'time-unit' attribute to <interval-trigger/> (INT-424).
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.springframework.integration.config.xml;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
import org.springframework.beans.factory.config.BeanDefinitionHolder;
|
||||
@@ -158,11 +160,11 @@ public abstract class IntegrationNamespaceUtils {
|
||||
private static Trigger createIntervalTrigger(Element element) {
|
||||
String interval = element.getAttribute("interval");
|
||||
Assert.hasText(interval, "the 'interval' attribute is required for an <interval-trigger/>");
|
||||
Long period = Long.valueOf(interval);
|
||||
IntervalTrigger trigger = new IntervalTrigger(period);
|
||||
TimeUnit timeUnit = TimeUnit.valueOf(element.getAttribute("time-unit"));
|
||||
IntervalTrigger trigger = new IntervalTrigger(Long.valueOf(interval), timeUnit);
|
||||
String initialDelay = element.getAttribute("initial-delay");
|
||||
if (StringUtils.hasText(initialDelay)) {
|
||||
trigger.setInitialDelay(Long.valueOf(initialDelay));
|
||||
trigger.setInitialDelay(Long.valueOf(initialDelay), timeUnit);
|
||||
}
|
||||
trigger.setFixedRate("true".equals(element.getAttribute("fixed-rate").toLowerCase()));
|
||||
return trigger;
|
||||
|
||||
@@ -254,7 +254,21 @@
|
||||
<xsd:attribute name="interval" type="xsd:string"/>
|
||||
<xsd:attribute name="initial-delay" type="xsd:string"/>
|
||||
<xsd:attribute name="fixed-rate" type="xsd:boolean"/>
|
||||
<!-- TODO: add time-unit -->
|
||||
<xsd:attribute name="time-unit" default="MILLISECONDS">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation><![CDATA[
|
||||
The java.util.concurrent.TimeUnit enum value. The interval trigger resolution
|
||||
only has millisecond granularity, so we only provide MILLISECONDS and SECONDS.
|
||||
For hourly, daily, and monthly settings, consider using a cron-trigger instead.
|
||||
]]></xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="MILLISECONDS"/>
|
||||
<xsd:enumeration value="SECONDS"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:attribute>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user