/** {@inheritDoc} */ public ServiceTarget removeMonitor(final StabilityMonitor monitor) { getDelegate().removeMonitor(monitor); return this; }
/** {@inheritDoc} */ public ServiceTarget removeMonitor(final StabilityMonitor monitor) { getDelegate().removeMonitor(monitor); return this; }
/** {@inheritDoc} */ public ServiceTarget removeMonitor(StabilityMonitor monitor) { getServiceTargetDelegate().removeMonitor(monitor); return this; }
/** {@inheritDoc} */ public ServiceTarget removeMonitor(StabilityMonitor monitor) { getServiceTargetDelegate().removeMonitor(monitor); return this; }
public void printBootStatistics() { final StabilityStatistics statistics = new StabilityStatistics(); try { monitor.awaitStability(statistics); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); return; } finally { serviceTarget.removeMonitor(monitor); final long bootstrapTime = System.currentTimeMillis() - startTime; done(bootstrapTime, statistics); monitor.clear(); } }
public void printBootStatistics() { final StabilityStatistics statistics = new StabilityStatistics(); try { monitor.awaitStability(statistics); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); return; } finally { serviceTarget.removeMonitor(monitor); final long bootstrapTime = System.currentTimeMillis() - startTime; done(bootstrapTime, statistics); monitor.clear(); } }
public void printBootStatistics() { final StabilityStatistics statistics = new StabilityStatistics(); try { monitor.awaitStability(statistics); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); return; } finally { serviceTarget.removeMonitor(monitor); final long bootstrapTime = System.currentTimeMillis() - startTime; done(bootstrapTime, statistics); monitor.clear(); } }
public InternalApplicationExtension extend(String extensionId, String resourceId, ObjectNode configuration, boolean boottime) throws Exception { ServiceTarget target = this.target.subTarget(); StabilityMonitor monitor = new StabilityMonitor(); target.addMonitor(monitor); ServiceName resourceServiceName = Services.applicationExtension(this.id, resourceId); ApplicationExtensionService appExt = new ApplicationExtensionService(extensionId, resourceId, configuration, boottime); ServiceController<InternalApplicationExtension> controller = target.addService(resourceServiceName, appExt) .addDependency(Services.extension(extensionId), Extension.class, appExt.extensionInjector()) .addDependency(Services.application(this.id), InternalApplication.class, appExt.applicationInjector()) .addDependency(Services.SERVICE_REGISTRY, ServiceRegistry.class, appExt.serviceRegistryInjector()) .install(); monitor.awaitStability(); InternalApplicationExtension intAppExt = controller.awaitValue(); if (intAppExt.exception() != null) { intAppExt.remove(); log.error(intAppExt.exception()); throw intAppExt.exception(); } target.removeMonitor(monitor); return intAppExt; }
@Override public void start(StartContext context) throws StartException { ServiceTarget target = context.getChildTarget(); StabilityMonitor monitor = new StabilityMonitor(); target.addMonitor(monitor); File appDir = this.appServiceController.getValue().directory(); try { context.asynchronous(); this.appServiceController.setMode(ServiceController.Mode.REMOVE); new Thread("ApplicationRemovalService worker thread") { public void run() { try { FileHelper.deleteNonEmpty(appDir.getAbsoluteFile()); context.complete(); } catch (Throwable e) { context.failed(new StartException("Unable to remove application directory: " + appDir.getAbsolutePath(), e)); } } }.start(); monitor.awaitStability(); target.removeMonitor(monitor); } catch (Exception e) { throw new StartException(e); } // remove ourselves context.getController().setMode(ServiceController.Mode.REMOVE); }