code: void recoverExchange(String exchangeName, ResourceDeclaration exchangeDeclaration)
        throws Exception {
      try {
        log.info("Recovering exchange {} via {}", exchangeName, this);
        exchangeDeclaration.invoke(getRecoveryChannel());
      } catch (Exception e) {
        log.error("Failed to recover exchange {} via {}", exchangeName, this, e);
        if (throwOnRecoveryFailure() || Exceptions.isCausedByConnectionClosure(e))
          throw e;
      }
    }
docs: Recovers an exchange using the {@code channelSupplier}.