Repository: incubator-brooklyn Updated Branches: refs/heads/master 3fe40c7b5 -> d78c1725d
Fix String -> Lifecycle coercion for ON_FIRE Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/d7ff98a0 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/d7ff98a0 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/d7ff98a0 Branch: refs/heads/master Commit: d7ff98a0711edfa194fc8d528818a97abc13f6ba Parents: d0cbcf3 Author: Svetoslav Neykov <[email protected]> Authored: Tue May 12 14:45:35 2015 +0300 Committer: Svetoslav Neykov <[email protected]> Committed: Tue May 12 14:45:35 2015 +0300 ---------------------------------------------------------------------- .../java/brooklyn/entity/basic/Lifecycle.java | 4 ++-- .../entity/basic/LifecycleTransitionTest.java | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d7ff98a0/core/src/main/java/brooklyn/entity/basic/Lifecycle.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/Lifecycle.java b/core/src/main/java/brooklyn/entity/basic/Lifecycle.java index 2c8c237..d4449a1 100644 --- a/core/src/main/java/brooklyn/entity/basic/Lifecycle.java +++ b/core/src/main/java/brooklyn/entity/basic/Lifecycle.java @@ -158,14 +158,14 @@ public enum Lifecycle { } protected static class TransitionCoalesceFunction implements Function<String, Transition> { - private static final Pattern TRANSITION_PATTERN = Pattern.compile("^(\\w+)\\s+@\\s+(\\d+).*"); + private static final Pattern TRANSITION_PATTERN = Pattern.compile("^([\\w-]+)\\s+@\\s+(\\d+).*"); @Override public Transition apply(final String input) { if (input != null) { Matcher m = TRANSITION_PATTERN.matcher(input); if (m.matches()) { - Lifecycle state = Lifecycle.valueOf(m.group(1).toUpperCase()); + Lifecycle state = Lifecycle.valueOf(m.group(1).toUpperCase().replace('-', '_')); long time = Long.parseLong(m.group(2)); return new Transition(state, new Date(time)); } else { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d7ff98a0/core/src/test/java/brooklyn/entity/basic/LifecycleTransitionTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/basic/LifecycleTransitionTest.java b/core/src/test/java/brooklyn/entity/basic/LifecycleTransitionTest.java index 7b5806e..686424d 100644 --- a/core/src/test/java/brooklyn/entity/basic/LifecycleTransitionTest.java +++ b/core/src/test/java/brooklyn/entity/basic/LifecycleTransitionTest.java @@ -22,15 +22,28 @@ import static org.testng.Assert.assertTrue; import java.util.Date; +import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import brooklyn.entity.basic.Lifecycle.Transition; import brooklyn.entity.basic.Lifecycle.TransitionCoalesceFunction; public class LifecycleTransitionTest { - @Test - public void testTransitionCoalesce() { - Transition t = new Transition(Lifecycle.RUNNING, new Date()); + @DataProvider(name = "states") + public Object[][] generateLifecycleStates() { + Object[][] states = new Object[Lifecycle.values().length][]; + int i = 0; + for (Lifecycle state : Lifecycle.values()) { + System.out.println(":" + state); + states[i] = new Object[] {state}; + i++; + } + return states; + } + + @Test(dataProvider="states") + public void testTransitionCoalesce(Lifecycle state) { + Transition t = new Transition(state, new Date()); String serialized = t.toString(); Transition t2 = new TransitionCoalesceFunction().apply(serialized); assertTrue(t.equals(t2), "Deserialized Lifecycle.Transition not equal to original");
