code: @Override
  	public void stopped() {
  
  		// Stop timer
  		ScheduledFuture<?> task = callTimeoutTimer.get();
  		if (task != null) {
  			task.cancel(false);
  		}
  
  		// Stop pending invocations
  		Iterator<PendingPromise> pendingPromises = promises.values().iterator();
  		while (pendingPromises.hasNext()) {
  			PendingPromise pending = pendingPromises.next();
  			pendingPromises.remove();
  			try {
  				pending.promise.complete(new RequestRejectedError(nodeID, pending.action));
  			} catch (Throwable cause) {
  				logger.warn("Unable to reject action \"" + pending.action + "\"!", cause);
  			}
  		}
  
  		// Stop middlewares
  		for (Middleware middleware : middlewares) {
  			try {
  				middleware.stopped();
  			} catch (Throwable cause) {
  				logger.warn("Unable to stop middleware \"" + middleware.name + "\"!", cause);
  			}
  		}
  
  		// Stop registered services
  		stopAllLocalServices();
  
  		// Clear registries
  		final long stamp = lock.writeLock();
  		try {
  
  			// Delete strategies (and registered actions)
  			strategies.clear();
  
  			// Delete all service names
  			names.clear();
  
  			// Delete middlewares
  			middlewares.clear();
  
  			// Delete cached node descriptor
  			clearDescriptorCache();
  
  		} finally {
  			lock.unlockWrite(stamp);
  		}
  	}
docs: --- STOP SERVICE REGISTRY ---