void (@NotNull T listener, @NotNull Disposable parentDisposable) { Disposer.register(parentDisposable, new Disposable() { @Override public void dispose() { myListenerToConnectionMap.remove(listener); } }); MessageBusConnection connection = myMessageBus.connect(parentDisposable); connection.subscribe(myTopic, listener); myListenerToConnectionMap.put(listener, connection); }