Documentation for a newer release is available. View Latest

Exportación manual de eventos mediante un SendConnector

Aquí usamos Connectors para suscribirnos a un conjunto de eventos, convertirlos a un formato propietario y luego enviarlos a través de algún 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 evento a un tipo de destino (withTargetTypeConverter) — en este caso, un payload JSON de ejemplo

  • Una forma de convertir el tipo de destino en un mensaje para enviar por el transporte (withTransportMessageConverter)

  • Un ConnectorTransport — se admiten JMS, Kafka y HTTP, pero también puedes escribir el tuyo propio