code: @Override
  	public Tree generateListenerDescriptor(String service) {
  		LinkedHashMap<String, Object> descriptor = new LinkedHashMap<>();
  		readLock.lock();
  		try {
  			for (HashMap<String, Strategy<ListenerEndpoint>> groups : listeners.values()) {
  				for (Strategy<ListenerEndpoint> strategy : groups.values()) {
  					for (ListenerEndpoint endpoint : strategy.getAllEndpoints()) {
  						if (endpoint.isLocal() && endpoint.serviceName.equals(service)) {
  							LinkedHashMap<String, Object> map = new LinkedHashMap<>();
  							descriptor.put(endpoint.subscribe, map);
  							map.put("name", endpoint.subscribe);
  							map.put("group", endpoint.group);
  						}
  					}
  				}
  			}
  		} finally {
  			readLock.unlock();
  		}
  		return new CheckedTree(descriptor);
  	}
docs: --- GENERATE LISTENER DESCRIPTOR ---