@StreamListener(target = Sink.INPUT, condition = "(headers['messageType']?:'')=='PaymentReceivedEvent'") @Transactional public void paymentReceived(String messageJson) throws Exception { Message<PaymentReceivedEventPayload> message = new ObjectMapper().readValue(messageJson, new TypeReference<Message<PaymentReceivedEventPayload>>() {}); PaymentReceivedEventPayload event = message.getPayload(); // TODO: Read something from it? zeebe.workflowClient().newPublishMessageCommand() // .messageName(message.getMessageType()) .correlationKey(message.getCorrelationId()) .payload("{\"paymentInfo\": \"YeahWeCouldAddSomething\"}") .send().join(); System.out.println("Correlated " + message ); }
@StreamListener(target = Sink.INPUT, condition = "(headers['messageType']?:'')=='GoodsFetchedEvent'") @Transactional public void goodsFetchedReceived(String messageJson) throws Exception { Message<GoodsFetchedEventPayload> message = new ObjectMapper().readValue(messageJson, new TypeReference<Message<GoodsFetchedEventPayload>>() {}); String pickId = message.getPayload().getPickId(); zeebe.workflowClient().newPublishMessageCommand() // .messageName(message.getMessageType()) .correlationKey(message.getCorrelationId()) .payload("{\"pickId\":\"" + pickId + "\"}") // .send().join(); System.out.println("Correlated " + message ); }
@StreamListener(target = Sink.INPUT, condition = "(headers['messageType']?:'')=='GoodsShippedEvent'") @Transactional public void goodsShippedReceived(String messageJson) throws Exception { Message<GoodsShippedEventPayload> message = new ObjectMapper().readValue(messageJson, new TypeReference<Message<GoodsShippedEventPayload>>() {}); String shipmentId = message.getPayload().getShipmentId(); zeebe.workflowClient().newPublishMessageCommand() // .messageName(message.getMessageType()) .correlationKey(message.getCorrelationId()) .payload("{\"shipmentId\":\"" + shipmentId + "\"}") // .send().join(); System.out.println("Correlated " + message ); } }
/** * Publishes a new message to the broker. * * @param messageName name of the message * @param correlationKey correlation key */ public void publishMessage(String messageName, String correlationKey) { clientRule .getClient() .newPublishMessageCommand() .messageName(messageName) .correlationKey(correlationKey) .send() .join(); }
/** * Publishes a new message to the broker. * * @param messageName name of the message * @param correlationKey correlation key */ public void publishMessage(String messageName, String correlationKey) { clientRule .getClient() .newPublishMessageCommand() .messageName(messageName) .correlationKey(correlationKey) .send() .join(); }