shutdown-impl: final parameters
[controller.git] / opendaylight / config / shutdown-impl / src / main / java / org / opendaylight / controller / config / yang / shutdown / impl / ShutdownServiceImpl.java
index 6cdcf605b04716537d73252d75443e92506b3a14..74634dd1577cc781edddc82cfda633d35c6d8879 100644 (file)
@@ -8,21 +8,20 @@
 package org.opendaylight.controller.config.yang.shutdown.impl;
 
 import com.google.common.base.Optional;
+import java.lang.management.ManagementFactory;
+import java.lang.management.ThreadInfo;
 import org.opendaylight.controller.config.shutdown.ShutdownService;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.lang.management.ManagementFactory;
-import java.lang.management.ThreadInfo;
-
 public class ShutdownServiceImpl implements ShutdownService, AutoCloseable {
     private final ShutdownService impl;
     private final ShutdownRuntimeRegistration registration;
 
-    public ShutdownServiceImpl(String secret, Bundle systemBundle,
-                               ShutdownRuntimeRegistrator rootRuntimeBeanRegistratorWrapper) {
+    public ShutdownServiceImpl(final String secret, final Bundle systemBundle,
+                               final ShutdownRuntimeRegistrator rootRuntimeBeanRegistratorWrapper) {
         if (secret == null) {
             throw new IllegalArgumentException("Secret cannot be null");
         }
@@ -31,7 +30,7 @@ public class ShutdownServiceImpl implements ShutdownService, AutoCloseable {
     }
 
     @Override
-    public void shutdown(String inputSecret, Long maxWaitTime, Optional<String> reason) {
+    public void shutdown(final String inputSecret, final Long maxWaitTime, final Optional<String> reason) {
         impl.shutdown(inputSecret, maxWaitTime, reason);
     }
 
@@ -42,38 +41,38 @@ public class ShutdownServiceImpl implements ShutdownService, AutoCloseable {
 }
 
 class Impl implements ShutdownService {
-    private static final Logger logger = LoggerFactory.getLogger(Impl.class);
+    private static final Logger LOG = LoggerFactory.getLogger(Impl.class);
     private final String secret;
     private final Bundle systemBundle;
 
-    Impl(String secret, Bundle systemBundle) {
+    Impl(final String secret, final Bundle systemBundle) {
         this.secret = secret;
         this.systemBundle = systemBundle;
     }
 
     @Override
-    public void shutdown(String inputSecret, Long maxWaitTime, Optional<String> reason) {
-        logger.warn("Shutdown issued with secret {} and reason {}", inputSecret, reason);
+    public void shutdown(final String inputSecret, final Long maxWaitTime, final Optional<String> reason) {
+        LOG.warn("Shutdown issued with secret {} and reason {}", inputSecret, reason);
         try {
             Thread.sleep(1000); // prevent brute force attack
-        } catch (InterruptedException e) {
+        } catch (final InterruptedException e) {
             Thread.currentThread().interrupt();
-            logger.warn("Shutdown process interrupted", e);
+            LOG.warn("Shutdown process interrupted", e);
         }
         if (this.secret.equals(inputSecret)) {
-            logger.info("Server is shutting down");
+            LOG.info("Server is shutting down");
 
             // actual work:
             Thread stopSystemBundleThread = new StopSystemBundleThread(systemBundle);
             stopSystemBundleThread.start();
             if (maxWaitTime != null && maxWaitTime > 0) {
                 Thread systemExitThread = new CallSystemExitThread(maxWaitTime);
-                logger.debug("Scheduling {}", systemExitThread);
+                LOG.debug("Scheduling {}", systemExitThread);
                 systemExitThread.start();
             }
             // end
         } else {
-            logger.warn("Unauthorized attempt to shut down server");
+            LOG.warn("Unauthorized attempt to shut down server");
             throw new IllegalArgumentException("Invalid secret");
         }
     }
@@ -81,10 +80,10 @@ class Impl implements ShutdownService {
 }
 
 class StopSystemBundleThread extends Thread {
-    private static final Logger logger = LoggerFactory.getLogger(StopSystemBundleThread.class);
+    private static final Logger LOG = LoggerFactory.getLogger(StopSystemBundleThread.class);
     private final Bundle systemBundle;
 
-    StopSystemBundleThread(Bundle systemBundle) {
+    StopSystemBundleThread(final Bundle systemBundle) {
         super("stop-system-bundle");
         this.systemBundle = systemBundle;
     }
@@ -94,19 +93,20 @@ class StopSystemBundleThread extends Thread {
         try {
             // wait so that JMX response is received
             Thread.sleep(1000);
+            LOG.debug("Stopping system bundle");
             systemBundle.stop();
-        } catch (BundleException e) {
-            logger.warn("Can not stop OSGi server", e);
-        } catch (InterruptedException e) {
-            logger.warn("Shutdown process interrupted", e);
+        } catch (final BundleException e) {
+            LOG.warn("Can not stop OSGi server", e);
+        } catch (final InterruptedException e) {
+            LOG.warn("Shutdown process interrupted", e);
         }
     }
 }
 
 class CallSystemExitThread extends Thread {
-    private static final Logger logger = LoggerFactory.getLogger(CallSystemExitThread.class);
+    private static final Logger LOG = LoggerFactory.getLogger(CallSystemExitThread.class);
     private final long maxWaitTime;
-    CallSystemExitThread(long maxWaitTime) {
+    CallSystemExitThread(final long maxWaitTime) {
         super("call-system-exit-daemon");
         setDaemon(true);
         if (maxWaitTime <= 0){
@@ -127,7 +127,7 @@ class CallSystemExitThread extends Thread {
         try {
             // wait specified time
             Thread.sleep(maxWaitTime);
-            logger.error("Since some threads are still running, server is going to shut down via System.exit(1) !");
+            LOG.error("Since some threads are still running, server is going to shut down via System.exit(1) !");
             // do a thread dump
             ThreadInfo[] threads = ManagementFactory.getThreadMXBean().dumpAllThreads(true, true);
             StringBuffer sb = new StringBuffer();
@@ -135,10 +135,10 @@ class CallSystemExitThread extends Thread {
                 sb.append(info);
                 sb.append("\n");
             }
-            logger.warn("Thread dump:{}", sb);
+            LOG.warn("Thread dump:{}", sb);
             System.exit(1);
-        } catch (InterruptedException e) {
-            logger.info("Interrupted, not going to call System.exit(1)");
+        } catch (final InterruptedException e) {
+            LOG.warn("Interrupted, not going to call System.exit(1)");
         }
     }
 }
@@ -147,12 +147,12 @@ class CallSystemExitThread extends Thread {
 class MXBeanImpl implements ShutdownRuntimeMXBean {
     private final ShutdownService impl;
 
-    MXBeanImpl(ShutdownService impl) {
+    MXBeanImpl(final ShutdownService impl) {
         this.impl = impl;
     }
 
     @Override
-    public void shutdown(String inputSecret, Long maxWaitTime, String nullableReason) {
+    public void shutdown(final String inputSecret, final Long maxWaitTime, final String nullableReason) {
         Optional<String> optionalReason;
         if (nullableReason == null) {
             optionalReason = Optional.absent();