@Override public void stop(StopContext context) { if(binderService.release()) { //we are the last user, it needs to shut down context.asynchronous(); sharedBindingController.addListener(new LifecycleListener() { @Override public void handleEvent(ServiceController<?> controller, LifecycleEvent event) { if(event == LifecycleEvent.REMOVED) { context.complete(); } } }); } }
@Override public void undeploy(final DeploymentUnit context) { final Module module = context.getAttachment(org.jboss.as.server.deployment.Attachments.MODULE); ServiceName deploymentService = context.getServiceName(); ServiceController<?> controller = context.getServiceRegistry().getRequiredService(deploymentService); //WFLY-9666 we do this cleanup at the end of undeploy //if we do it now any code in the undeploy sequence that attempts to use EL can cause it to be re-added controller.addListener(new LifecycleListener() { @Override public void handleEvent(ServiceController<?> serviceController, LifecycleEvent lifecycleEvent) { if(lifecycleEvent == LifecycleEvent.DOWN) { FactoryFinderCache.clearClassLoader(module.getClassLoader()); controller.removeListener(this); } } }); } }
controller.addListener(new LifecycleListener() { @Override public void handleEvent(final ServiceController<?> controller, final LifecycleEvent event) {
final org.jboss.msc.service.ServiceController.Mode originalMode = raServiceController.getMode(); final UninterruptibleCountDownLatch latch = new UninterruptibleCountDownLatch(1); raServiceController.addListener(new LifecycleListener() { @Override public void handleEvent(ServiceController controller, LifecycleEvent event) {
@Override public void deploy(DeploymentPhaseContext context) throws DeploymentUnitProcessingException { DeploymentUnit unit = context.getDeploymentUnit(); if (unit.getParent() == null) { SingletonPolicy policy = context.getAttachment(POLICY_KEY); if (policy != null) { CapabilityServiceSupport support = unit.getAttachment(Attachments.CAPABILITY_SERVICE_SUPPORT); // Ideally, we would just install the next phase using the singleton policy, however deployment unit phases do not currently support restarts // Restart the deployment using the attached phase builder, but only if a builder was not already attached if (unit.putAttachment(Attachments.DEPLOYMENT_UNIT_PHASE_BUILDER, new SingletonDeploymentUnitPhaseBuilder(support, policy)) == null) { SingletonLogger.ROOT_LOGGER.singletonDeploymentDetected(policy); ServiceController<?> controller = context.getServiceRegistry().getRequiredService(unit.getServiceName()); controller.addListener(this); controller.setMode(Mode.NEVER); } } } }
public void addListener(ServiceListener<? super S> serviceListener) { controller.addListener(serviceListener); }
public void addListener(ServiceListener<? super S> serviceListener) { controller.addListener(serviceListener); }
/** {@inheritDoc} */ @Override public void addListener(final LifecycleListener listener) { getDelegate().addListener(listener); }
/** {@inheritDoc} */ @Override @Deprecated public void addListener(final ServiceListener<? super S> listener) { getDelegate().addListener(listener); }
/** {@inheritDoc} */ @Override public void addListener(final LifecycleListener listener) { getDelegate().addListener(listener); }
/** {@inheritDoc} */ @Override @Deprecated public void addListener(final ServiceListener<? super S> listener) { getDelegate().addListener(listener); }
public void restart() { this.controller.addListener(this); this.mode = this.controller.getMode(); this.controller.setMode(ServiceController.Mode.NEVER); }
protected <P> void applyUpdate(UpdateContext updateContext, UpdateResultHandler<? super Void,P> resultHandler, P param) { final ServiceController<?> controller = updateContext.getServiceContainer().getService(SocketBinding.JBOSS_BINDING_NAME.append(name)); if(controller == null) { resultHandler.handleSuccess(null, param); return; } controller.addListener(new UpdateResultHandler.ServiceRemoveListener<P>(resultHandler, param)); }
public <P> void applyUpdate(UpdateContext updateContext, org.jboss.as.model.UpdateResultHandler<? super Void,P> resultHandler, P param) { final ServiceController<?> controller = updateContext.getServiceContainer().getService(NetworkInterfaceService.JBOSS_NETWORK_INTERFACE.append(interfaceName)); if(controller == null) { resultHandler.handleSuccess(null, param); return; } controller.addListener(new UpdateResultHandler.ServiceRemoveListener<P>(resultHandler, param)); }
@SuppressWarnings("unchecked") protected void replaceService(ServiceName name, Runnable actionOnRemove) { ServiceController<?> service = this.unit.getServiceRegistry().getService( name ); if (service != null) { if (actionOnRemove != null) { service.addListener( new RemovalListener( actionOnRemove ) ); } service.setMode( Mode.REMOVE ); } else if (actionOnRemove != null) { actionOnRemove.run(); } }
@SuppressWarnings("unchecked") @Override public ModuleSpec findModule(ModuleIdentifier identifier) throws ModuleLoadException { ServiceController<ModuleSpec> controller = (ServiceController<ModuleSpec>) serviceContainer.getService(moduleSpecServiceName(identifier)); if (controller == null) { ServerLogger.MODULE_SERVICE_LOGGER.debugf("Could not load module '%s' as corresponding module spec service '%s' was not found", identifier, identifier); return null; } ModuleSpecLoadListener listener = new ModuleSpecLoadListener(identifier); controller.addListener(listener); return listener.getModuleSpec(); }
@Override public <P> void applyUpdate(UpdateContext context, UpdateResultHandler<? super Void,P> resultHandler, P param) { final ServiceController<?> controller = context.getServiceContainer().getService(AbstractPathService.pathNameOf(name)); if(controller == null) { resultHandler.handleSuccess(null, param); } else { controller.addListener(new UpdateResultHandler.ServiceRemoveListener<P>(resultHandler, param)); } }
@SuppressWarnings("unchecked") @Override public ModuleSpec findModule(ModuleIdentifier identifier) throws ModuleLoadException { ServiceController<ModuleDefinition> controller = (ServiceController<ModuleDefinition>) serviceContainer.getService(moduleSpecServiceName(identifier)); if (controller == null) { ServerLogger.MODULE_SERVICE_LOGGER.debugf("Could not load module '%s' as corresponding module spec service '%s' was not found", identifier, identifier); return null; } ModuleSpecLoadListener listener = new ModuleSpecLoadListener(identifier); controller.addListener(listener); return listener.getModuleSpec(); }
/** {@inheritDoc} */ public <P> void applyUpdate(UpdateContext context, UpdateResultHandler<? super Void,P> resultHandler, P param) { final ServiceController<?> controller = context.getServiceContainer().getService(DeploymentScannerService.getServiceName(path)); if(controller == null) { resultHandler.handleSuccess(null, param); return; } controller.addListener(new UpdateResultHandler.ServiceRemoveListener<P>(resultHandler, param)); }
private void unbind(final Name name, final ServiceName bindName) throws NamingException { final ServiceController<?> controller = getServiceRegistry().getService(bindName); if (controller == null) { throw MESSAGES.cannotResolveService(bindName); } final UnbindListener listener = new UnbindListener(); controller.addListener(listener); try { // when added, the listener stops the binding service listener.await(); } catch (Exception e) { throw namingException("Failed to unbind [" + bindName + "]", e); } }