Repository: incubator-brooklyn Updated Branches: refs/heads/master c6e09bf0d -> 683bee980
Add description for tasks running a repeater Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/1f98ea2c Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/1f98ea2c Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/1f98ea2c Branch: refs/heads/master Commit: 1f98ea2c0ef6f7b26f7b35fdf94f4761fdf454dc Parents: 1f3bff4 Author: Svetoslav Neykov <[email protected]> Authored: Fri Mar 6 17:39:32 2015 +0200 Committer: Svetoslav Neykov <[email protected]> Committed: Fri Mar 6 17:39:32 2015 +0200 ---------------------------------------------------------------------- .../src/main/java/brooklyn/util/task/Tasks.java | 11 ++++++++-- .../test/java/brooklyn/util/task/TasksTest.java | 22 ++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1f98ea2c/core/src/main/java/brooklyn/util/task/Tasks.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/util/task/Tasks.java b/core/src/main/java/brooklyn/util/task/Tasks.java index bce2887..f644441 100644 --- a/core/src/main/java/brooklyn/util/task/Tasks.java +++ b/core/src/main/java/brooklyn/util/task/Tasks.java @@ -445,7 +445,14 @@ public class Tasks { @Override public Boolean call() { - ReferenceWithError<Boolean> result = repeater.runKeepingError(); + ReferenceWithError<Boolean> result; + Tasks.setBlockingDetails(repeater.getDescription()); + try { + result = repeater.runKeepingError(); + } finally { + Tasks.resetBlockingDetails(); + } + if (Boolean.TRUE.equals(result.getWithoutError())) return true; if (result.hasError()) @@ -469,7 +476,7 @@ public class Tasks { public static TaskBuilder<?> requiring(Repeater repeater) { return Tasks.<Boolean>builder().body(new WaitForRepeaterCallable(repeater, true)) .name("waiting for condition") - .description("Requiring " + getTimeoutString(repeater) + ": "+repeater); + .description("Requiring " + getTimeoutString(repeater) + ": " + repeater.getDescription()); } private static String getTimeoutString(Repeater repeater) { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1f98ea2c/core/src/test/java/brooklyn/util/task/TasksTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/util/task/TasksTest.java b/core/src/test/java/brooklyn/util/task/TasksTest.java index d5e2bb4..c74278a 100644 --- a/core/src/test/java/brooklyn/util/task/TasksTest.java +++ b/core/src/test/java/brooklyn/util/task/TasksTest.java @@ -20,9 +20,11 @@ package brooklyn.util.task; import static brooklyn.event.basic.DependentConfiguration.attributeWhenReady; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; import java.util.Map; import java.util.Set; +import java.util.concurrent.Callable; import org.testng.Assert; import org.testng.annotations.BeforeMethod; @@ -156,4 +158,24 @@ public class TasksTest extends BrooklynAppUnitTestSupport { Assert.assertEquals(t.get(Duration.TEN_SECONDS), false); } + @Test + public void testRepeaterDescription() throws Exception{ + final String description = "task description"; + Repeater repeater = Repeater.create(description) + .repeat(Callables.returning(null)) + .every(Duration.ONE_MILLISECOND) + .limitIterationsTo(1) + .until(new Callable<Boolean>() { + @Override + public Boolean call() { + TaskInternal<?> current = (TaskInternal<?>)Tasks.current(); + assertEquals(current.getBlockingDetails(), description); + return true; + } + }); + Task<Boolean> t = Tasks.testing(repeater).build(); + app.getExecutionContext().submit(t); + assertTrue(t.get(Duration.TEN_SECONDS)); + } + }
