public <T> T addOutgoing(Class<T> type) {
String channelKey = type.getName();
lock.lock();
try {
if (channels.add(channelKey)) {
discoveryBroadcast.getTop().dispatch(new LookupRequest(messageOriginator, group, channelKey));
}
} finally {
lock.unlock();
}
return new ProxyDispatchAdapter<T>(hub.addMulticastOutgoing(channelKey), type).getSource();