View Javadoc

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    * @since 3.0
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  }