1 package com.atlassian.johnson.spring.lifecycle;
2
3 import com.google.common.base.Objects;
4
5 import javax.annotation.Nonnull;
6 import javax.servlet.ServletContext;
7
8
9
10
11 public class LifecycleUtils {
12
13 private static final String ATTR_STATE = LifecycleState.class.getName() + ":Current";
14
15 private LifecycleUtils() {
16 throw new UnsupportedOperationException(getClass() + " is a utility class and should not be instantiated.");
17 }
18
19 @Nonnull
20 public static LifecycleState getCurrentState(@Nonnull ServletContext servletContext) {
21 LifecycleState state = (LifecycleState) servletContext.getAttribute(ATTR_STATE);
22
23 return Objects.firstNonNull(state, LifecycleState.CREATED);
24 }
25
26 public static boolean isStarting(@Nonnull ServletContext servletContext) {
27 LifecycleState state = getCurrentState(servletContext);
28
29 return state == LifecycleState.CREATED || state == LifecycleState.STARTING;
30 }
31
32 public static void updateState(@Nonnull ServletContext servletContext, @Nonnull LifecycleState state) {
33 servletContext.setAttribute(ATTR_STATE, state);
34 }
35 }