diff --git a/streaming/src/main/scala/org/apache/spark/streaming/Duration.scala b/streaming/src/main/scala/org/apache/spark/streaming/Duration.scala index 42e5bf43b00f7..a0d8fb5ab93ec 100644 --- a/streaming/src/main/scala/org/apache/spark/streaming/Duration.scala +++ b/streaming/src/main/scala/org/apache/spark/streaming/Duration.scala @@ -100,13 +100,23 @@ object Minutes { } // Java-friendlier versions of the objects above. +// Named "Durations" instead of "Duration" to avoid changing the case class's implied API. -object Duration { +object Durations { - // No 'milliseconds' since it would conflict with methods above. Use the constructor directly. + /** + * @return [[org.apache.spark.streaming.Duration]] representing given number of milliseconds. + */ + def milliseconds(milliseconds: Long) = Milliseconds(milliseconds) + /** + * @return [[org.apache.spark.streaming.Duration]] representing given number of seconds. + */ def seconds(seconds: Long) = Seconds(seconds) + /** + * @return [[org.apache.spark.streaming.Duration]] representing given number of minutes. + */ def minutes(minutes: Long) = Minutes(minutes) } diff --git a/streaming/src/test/java/org/apache/spark/streaming/JavaDurationSuite.java b/streaming/src/test/java/org/apache/spark/streaming/JavaDurationSuite.java index 364f186fc3c7a..76425fe2aa2d3 100644 --- a/streaming/src/test/java/org/apache/spark/streaming/JavaDurationSuite.java +++ b/streaming/src/test/java/org/apache/spark/streaming/JavaDurationSuite.java @@ -66,14 +66,19 @@ public void testDiv() { Assert.assertEquals(200.0, new Duration(1000).div(new Duration(5)), 1.0e-12); } + @Test + public void testMilliseconds() { + Assert.assertEquals(new Duration(100), Durations.milliseconds(100)); + } + @Test public void testSeconds() { - Assert.assertEquals(new Duration(30 * 1000), Duration.seconds(30)); + Assert.assertEquals(new Duration(30 * 1000), Durations.seconds(30)); } @Test public void testMinutes() { - Assert.assertEquals(new Duration(2 * 60 * 1000), Duration.minutes(2)); + Assert.assertEquals(new Duration(2 * 60 * 1000), Durations.minutes(2)); } }