public final class ShutdownModule extends AbstractShutdownModule {
private final Bundle systemBundle;
- public ShutdownModule(ModuleIdentifier identifier, Bundle systemBundle) {
+ public ShutdownModule(final ModuleIdentifier identifier, final Bundle systemBundle) {
super(identifier, null);
singletonCheck(identifier);
this.systemBundle = systemBundle;
}
- public ShutdownModule(ModuleIdentifier identifier, ShutdownModule oldModule, java.lang.AutoCloseable oldInstance,
- Bundle systemBundle) {
+ public ShutdownModule(final ModuleIdentifier identifier, final ShutdownModule oldModule, final java.lang.AutoCloseable oldInstance,
+ final Bundle systemBundle) {
super(identifier, null, oldModule, oldInstance);
singletonCheck(identifier);
this.systemBundle = systemBundle;
}
- private static void singletonCheck(ModuleIdentifier identifier) {
+ private static void singletonCheck(final ModuleIdentifier identifier) {
if (AbstractShutdownModuleFactory.NAME.equals(identifier.getInstanceName()) == false) {
throw new IllegalArgumentException("Singleton enforcement failed. Expected instance name " + AbstractShutdownModuleFactory.NAME);
}
}
@Deprecated // needed for generated code
- public ShutdownModule(ModuleIdentifier identifier, DependencyResolver dependencyResolver, ShutdownModule oldModule,
- AutoCloseable oldInstance) {
+ public ShutdownModule(final ModuleIdentifier identifier, final DependencyResolver dependencyResolver, final ShutdownModule oldModule,
+ final AutoCloseable oldInstance) {
super(identifier, dependencyResolver, oldModule, oldInstance);
throw new UnsupportedOperationException();
}
@Deprecated // needed for generated code
- public ShutdownModule(ModuleIdentifier identifier, DependencyResolver dependencyResolver) {
+ public ShutdownModule(final ModuleIdentifier identifier, final DependencyResolver dependencyResolver) {
super(identifier, dependencyResolver);
throw new UnsupportedOperationException();
}
public class ShutdownModuleFactory extends AbstractShutdownModuleFactory {
- public ShutdownModule instantiateModule(String instanceName, DependencyResolver dependencyResolver,
- ShutdownModule oldModule, AutoCloseable oldInstance,
- BundleContext bundleContext) {
+ public ShutdownModule instantiateModule(final String instanceName, final DependencyResolver dependencyResolver,
+ final ShutdownModule oldModule, final AutoCloseable oldInstance,
+ final BundleContext bundleContext) {
Bundle systemBundle = bundleContext.getBundle(0);
return new ShutdownModule(new ModuleIdentifier(NAME, instanceName), oldModule, oldInstance, systemBundle);
}
- public ShutdownModule instantiateModule(String instanceName, DependencyResolver dependencyResolver,
- BundleContext bundleContext) {
+ public ShutdownModule instantiateModule(final String instanceName, final DependencyResolver dependencyResolver,
+ final BundleContext bundleContext) {
Bundle systemBundle = bundleContext.getBundle(0);
return new ShutdownModule(new ModuleIdentifier(NAME, instanceName), systemBundle);
}
@Override
- public Set<ShutdownModule> getDefaultModules(DependencyResolverFactory dependencyResolverFactory, BundleContext bundleContext) {
+ public Set<ShutdownModule> getDefaultModules(final DependencyResolverFactory dependencyResolverFactory, final BundleContext bundleContext) {
ModuleIdentifier id = new ModuleIdentifier(NAME, NAME);
DependencyResolver dependencyResolver = dependencyResolverFactory.createDependencyResolver(id);
ShutdownModule shutdownModule = instantiateModule(NAME, dependencyResolver, bundleContext);
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");
}
}
@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);
}
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) {
+ 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();
LOG.warn("Shutdown process interrupted", e);
}
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;
}
Thread.sleep(1000);
LOG.debug("Stopping system bundle");
systemBundle.stop();
- } catch (BundleException e) {
+ } catch (final BundleException e) {
LOG.warn("Can not stop OSGi server", e);
- } catch (InterruptedException e) {
+ } catch (final InterruptedException e) {
LOG.warn("Shutdown process interrupted", e);
}
}
class CallSystemExitThread extends Thread {
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){
}
LOG.warn("Thread dump:{}", sb);
System.exit(1);
- } catch (InterruptedException e) {
+ } catch (final InterruptedException e) {
LOG.warn("Interrupted, not going to call System.exit(1)");
}
}
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();
try {
transaction.createModule(NAME, "foo");
fail();
- } catch (IllegalArgumentException e) {
+ } catch (final IllegalArgumentException e) {
assertEquals("Singleton enforcement failed. Expected instance name shutdown", e.getMessage());
}
}
try {
runtime.shutdown("foo", 60000L, null);
fail();
- } catch (IllegalArgumentException e) {
+ } catch (final IllegalArgumentException e) {
assertEquals("Invalid secret", e.getMessage());
}
runtime.shutdown("", 60000L, null);
shutdownViaRuntimeJMX(secret);
}
- private void setSecret(String secret) throws InstanceNotFoundException, ValidationException, ConflictingVersionException {
+ private void setSecret(final String secret) throws InstanceNotFoundException, ValidationException, ConflictingVersionException {
ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
ObjectName on = transaction.lookupConfigBean(NAME, NAME);
ShutdownModuleMXBean proxy = transaction.newMXBeanProxy(on, ShutdownModuleMXBean.class);
ShutdownRuntimeMXBean runtime = JMX.newMXBeanProxy(platformMBeanServer, runtimeON, ShutdownRuntimeMXBean.class);
runtime.shutdown("foo", 60000L, null);
fail();
- } catch (IllegalArgumentException e) {
+ } catch (final IllegalArgumentException e) {
assertEquals("Invalid secret", e.getMessage());
}
}
- private void shutdownViaRuntimeJMX(String secret) throws Exception {
+ private void shutdownViaRuntimeJMX(final String secret) throws Exception {
// test JMX rpc
ShutdownRuntimeMXBean runtime = JMX.newMXBeanProxy(platformMBeanServer, runtimeON, ShutdownRuntimeMXBean.class);
try {
runtime.shutdown("", 60000L, null);
fail();
- } catch (IllegalArgumentException e) {
+ } catch (final IllegalArgumentException e) {
assertEquals("Invalid secret", e.getMessage());
}
runtime.shutdown(secret, 60000L, null);