From b11d8425eb5bd516960d2ffdef06bed45f68bb00 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Lesaint?= Date: Tue, 5 May 2015 10:10:23 +0200 Subject: [PATCH] SONAR-6365 use an enum to represent status of Platform using an enum allows testing all possible state of the Platform class based on a single value instead of combining multiple sequential method call which can return an inconsistent result of state changes in between method calls --- .../org/sonar/server/platform/Platform.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/Platform.java b/server/sonar-server/src/main/java/org/sonar/server/platform/Platform.java index 519f13ad49c..c61524fca3a 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/platform/Platform.java +++ b/server/sonar-server/src/main/java/org/sonar/server/platform/Platform.java @@ -124,11 +124,24 @@ public class Platform { } public boolean isStarted() { - return started && !isInSafeMode(); + return status() == Status.UP; } public boolean isInSafeMode() { - return started && safeModeContainer != null && currentContainer == safeModeContainer; + return status() == Status.SAFEMODE; + } + + public Status status() { + if (!started) { + return Status.BOOTING; + } + if (safeModeContainer != null && currentContainer == safeModeContainer) { + return Status.SAFEMODE; + } + if (currentContainer == level4Container) { + return Status.UP; + } + return Status.BOOTING; } /** @@ -239,4 +252,8 @@ public class Platform { public Object getComponent(Object key) { return getContainer().getComponentByKey(key); } + + public static enum Status { + BOOTING, SAFEMODE, UP; + } } -- 2.39.5