Class RoteadorEnviadores

java.lang.Object
br.com.xadm.comum.mensageria.RoteadorEnviadores

@Singleton public class RoteadorEnviadores extends Object
Indexa os EnviadorMensagem do app por tipo() e resolve o despacho. Também é a fonte dos tipos que o app roteia — o RelayM2m filtra a SAIDA por eles, então o enviar(MensagemM2m) só recebe tipo que ESTE app registra em operação normal. O ramo "sem enviador" abaixo é defensivo (loga erro claro e devolve ResultadoEnvio.semResposta(String), nunca NPE): não deve disparar, porque o MensageriaService.enfileirar(String, String, String, String) já falha-rápido ao enfileirar um tipo sem enviador local. Se disparar, é sinal de config/estado inesperado.
  • Constructor Details

  • Method Details

    • tiposRegistrados

      public Set<String> tiposRegistrados()
      Os tipo que ESTE app sabe enviar (um EnviadorMensagem registrado por tipo). O RelayM2m filtra a SAIDA por este conjunto: cada relay reivindica só o que roteia, então N apps podem dividir a MESMA mensagem_m2m sem competir (cada tipo tem 1 remetente). Vazio = o app não envia nada (ex.: só recebe ENTRADA) → o relay é no-op.
    • enviar

      public ResultadoEnvio enviar(MensagemM2m m)
      Resolve o enviador do tipo da mensagem e despacha.
      Parameters:
      m - a mensagem.
      Returns:
      o resultado do enviador, ou ResultadoEnvio.semResposta(String) se não houver enviador.