@Override public void start(StartContext context) throws StartException { ROOT_LOGGER.debugf("Starting JCA WorkManager: ", value.getName()); BlockingExecutor longRunning = (BlockingExecutor) executorLong.getOptionalValue(); if (longRunning != null) { this.value.setLongRunningThreadPool(longRunning); this.value.setShortRunningThreadPool((BlockingExecutor) executorShort.getValue()); } else { this.value.setLongRunningThreadPool((BlockingExecutor) executorShort.getValue()); this.value.setShortRunningThreadPool((BlockingExecutor) executorShort.getValue()); } this.value.setXATerminator(new XATerminatorImpl(xaTerminator.getValue())); if (value.getName().equals(DEFAULT_NAME)) { WorkManagerCoordinator.getInstance().setDefaultWorkManager(value); } else { WorkManagerCoordinator.getInstance().registerWorkManager(value); } // this is a value.restart() equivalent if (value.isShutdown()) value.cancelShutdown(); ROOT_LOGGER.debugf("Started JCA WorkManager: ", value.getName()); }
@Override public void stop(StopContext context) { ROOT_LOGGER.debugf("Stopping JCA WorkManager: ", value.getName()); // shutting down immediately (synchronous method) the workmanager and release all works value.shutdown(); if (value.getName().equals(DEFAULT_NAME)) { WorkManagerCoordinator.getInstance().setDefaultWorkManager(null); } else { WorkManagerCoordinator.getInstance().unregisterWorkManager(value); } ROOT_LOGGER.debugf("Stopped JCA WorkManager: ", value.getName()); }