From: Sébastien Lesaint Date: Tue, 5 May 2015 08:10:23 +0000 (+0200) Subject: SONAR-6365 use an enum to represent status of Platform X-Git-Tag: 5.2-RC1~1998 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=b11d8425eb5bd516960d2ffdef06bed45f68bb00;p=sonarqube.git 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 --- 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; + } }