Exportación manual events a través de un SendConnector

Aquí estamos utilizando Conectores para suscribirse a un conjunto de events, conviértalos a un formato propietario, luego envíelos a través de algún medio de transporte:

var connector = new SendConnector. Builder<IPFSystemEvent<?>, String>("eventSendConnector")
        .withTargetTypeConverter(evt -> String.format("{'eventName': '%s', 'createdAt':'%s'}", evt.getName(), evt.getCreatedAt().toString()))
        .withTransportMessageConverter(TransportMessage::new)
        .withConnectorTransport(connectorTransport)
        .build();

eventBus.subscribe(new EventProcessor() {
    @Override
    public Predicate<IPFSystemEvent<?>> predicate() {
        return evt -> evt.getLevel() == EventLevel. ERROR;
    }

    @Override
    public void notify(IPFSystemEvent<?> event) {
        connector.send(event.getMessageAssociation(), event);
    }
});

Primero creamos el conector con:

  • Una forma de convertir el event a un tipo de objetivo (withTargetTypeConverter)- en este caso un ejemplo JSON carga útil

  • Una forma de convertir el tipo de destino en un mensaje para enviar a través del transporte (withTransportMessageConverter)

  • A ConnectorTransport - JMS, Kafka y HTTP son compatibles, pero usted puede escribir los suyos también