io.eventuate.tram.messaging.common.Message类的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(11.0k)|赞(0)|评价(0)|浏览(278)

本文整理了Java中io.eventuate.tram.messaging.common.Message类的一些代码示例,展示了Message类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Message类的具体详情如下:
包路径:io.eventuate.tram.messaging.common.Message
类名称:Message

Message介绍

[英]A message
[中]留言

代码示例

代码示例来源:origin: eventuate-tram/eventuate-tram-sagas

  1. private String getSagaType(Message message) {
  2. return message.getRequiredHeader(SagaCommandHeaders.SAGA_TYPE);
  3. }

代码示例来源:origin: eventuate-tram/eventuate-tram-core

  1. private void send(Message message) {
  2. String table = eventuateSchema.qualifyTable("message");
  3. jdbcTemplate.update(String.format("insert into %s(id, destination, headers, payload) values(?, ?, ?, ?)", table),
  4. message.getId(),
  5. message.getRequiredHeader(Message.DESTINATION),
  6. JSonMapper.toJson(message.getHeaders()),
  7. message.getPayload());
  8. }

代码示例来源:origin: eventuate-tram/eventuate-tram-core

  1. protected void sendMessage(String id, String destination, Message message, MessageSender messageSender) {
  2. if (id == null) {
  3. if (!message.getHeader(Message.ID).isPresent())
  4. throw new IllegalArgumentException("message needs an id");
  5. } else {
  6. message.getHeaders().put(Message.ID, id);
  7. }
  8. message.getHeaders().put(Message.DESTINATION, destination);
  9. message.getHeaders().put(Message.DATE, HttpDateHeaderFormatUtil.nowAsHttpDateString());
  10. preSend(message);
  11. try {
  12. messageSender.send(message);
  13. postSend(message, null);
  14. } catch (RuntimeException e) {
  15. postSend(message, e);
  16. throw e;
  17. }
  18. }

代码示例来源:origin: eventuate-tram/eventuate-tram-core

  1. public MessageBuilder(Message message) {
  2. this(message.getPayload());
  3. this.headers = message.getHeaders();
  4. }

代码示例来源:origin: eventuate-tram/eventuate-tram-sagas

  1. @Override
  2. public void stashMessage(String sagaType, String sagaId, String target, Message message) {
  3. logger.debug("Stashing message from {} for {} : {}", sagaId, target, message);
  4. jdbcTemplate.update(insertIntoSagaStashTableSql,
  5. message.getRequiredHeader(Message.ID),
  6. target,
  7. sagaType,
  8. sagaId,
  9. JSonMapper.toJson(message.getHeaders()),
  10. message.getPayload()
  11. );
  12. }

代码示例来源:origin: io.eventuate.tram.sagas/eventuate-jpa-sagas-framework

  1. String sagaId = message.getRequiredHeader(SagaReplyHeaders.REPLY_SAGA_ID);
  2. String sagaType = message.getRequiredHeader(SagaReplyHeaders.REPLY_SAGA_TYPE);
  3. String requestId = message.getRequiredHeader(SagaReplyHeaders.REPLY_SAGA_REQUEST_ID);
  4. String messageId = message.getId();
  5. String messageType = message.getRequiredHeader(ReplyMessageHeaders.REPLY_TYPE);
  6. String messageJson = message.getPayload();
  7. message.getHeader(SagaReplyHeaders.REPLY_LOCKED).ifPresent(lockedTarget -> {
  8. String destination = message.getRequiredHeader(CommandMessageHeaders.inReply(CommandMessageHeaders.DESTINATION));
  9. sagaInstance.addDestinationsAndResources(singleton(new DestinationAndResource(destination, lockedTarget)));
  10. });

代码示例来源:origin: eventuate-tram/eventuate-tram-core

  1. public void messageHandler(Message message) {
  2. logger.trace("Received message {} {}", commandDispatcherId, message);
  3. Optional<CommandHandler> possibleMethod = commandHandlers.findTargetMethod(message);
  4. if (!possibleMethod.isPresent()) {
  5. throw new RuntimeException("No method for " + message);
  6. }
  7. CommandHandler m = possibleMethod.get();
  8. Object param = convertPayload(m, message.getPayload());
  9. Map<String, String> correlationHeaders = correlationHeaders(message.getHeaders());
  10. Map<String, String> pathVars = getPathVars(message, m);
  11. Optional<String> defaultReplyChannel = message.getHeader(CommandMessageHeaders.REPLY_TO);
  12. List<Message> replies;
  13. try {
  14. CommandMessage cm = new CommandMessage(message.getId(), param, correlationHeaders, message);
  15. replies = invoke(m, cm, pathVars);
  16. logger.trace("Generated replies {} {} {}", commandDispatcherId, message, replies);
  17. } catch (Exception e) {
  18. logger.trace("Generated error {} {} {}", commandDispatcherId, message, e.getClass().getName());
  19. handleException(message, param, m, e, pathVars, defaultReplyChannel);
  20. return;
  21. }
  22. if (replies != null) {
  23. publish(correlationHeaders, replies, defaultReplyChannel);
  24. } else {
  25. logger.trace("Null replies - not publishling");
  26. }
  27. }

代码示例来源:origin: io.eventuate.tram.core/eventuate-tram-events

  1. public void messageHandler(Message message) {
  2. String aggregateType = message.getRequiredHeader(EventMessageHeaders.AGGREGATE_TYPE);
  3. Optional<DomainEventHandler> handler = domainEventHandlers.findTargetMethod(message);
  4. if (!handler.isPresent()) {
  5. return;
  6. }
  7. DomainEvent param = JSonMapper.fromJson(message.getPayload(), handler.get().getEventClass());
  8. handler.get().invoke(new DomainEventEnvelopeImpl<>(message,
  9. aggregateType,
  10. message.getRequiredHeader(EventMessageHeaders.AGGREGATE_ID),
  11. message.getRequiredHeader(Message.ID),
  12. param));
  13. }

代码示例来源:origin: eventuate-tram/eventuate-tram-core

  1. public DomainEventHandlerUnitTestSupport publishes(DomainEvent event) {
  2. DomainEventPublisher publisher = new DomainEventPublisherImpl((destination, message) -> {
  3. String id = idGenerator.generateId().toString();
  4. message.getHeaders().put(Message.ID, id);
  5. handler.accept(message);
  6. });
  7. publisher.publish(aggregateType, aggregateId, Collections.singletonList(event));
  8. return this;
  9. }

代码示例来源:origin: eventuate-tram/eventuate-tram-sagas

  1. public <C extends Command> SagaParticipantStubManagerHelper<C> when(C expectedCommand) {
  2. return new SagaParticipantStubManagerHelper<C>(this, (Class<C>) expectedCommand.getClass(),
  3. message -> JSonMapper.fromJson(message.getPayload(), expectedCommand.getClass()).equals(expectedCommand));
  4. }

代码示例来源:origin: io.eventuate.tram.core/eventuate-tram-consumer-rabbitmq

  1. private void handleMessage(String subscriberId, MessageHandler handler, Message tramMessage, Runnable acknowledgeCallback) {
  2. transactionTemplate.execute(ts -> {
  3. if (duplicateMessageDetector.isDuplicate(subscriberId, tramMessage.getId())) {
  4. logger.info("consumer {} with subscriberId {} received message duplicate with id{}", id, subscriberId, tramMessage.getId());
  5. acknowledgeCallback.run();
  6. return null;
  7. }
  8. try {
  9. handler.accept(tramMessage);
  10. logger.info("consumer {} with subscriberId {} handled message with id {}", id, subscriberId, tramMessage.getId());
  11. } catch (Throwable t) {
  12. logger.info("consumer {} with subscriberId {} got exception when tried to handle message with id {}", id, subscriberId, tramMessage.getId());
  13. logger.info("Got exception ", t);
  14. } finally {
  15. acknowledgeCallback.run();
  16. }
  17. return null;
  18. });
  19. }

代码示例来源:origin: eventuate-tram/eventuate-tram-sagas

  1. private void handleReply(Message message) {
  2. if (!isReplyForThisSagaType(message))
  3. return;
  4. logger.debug("Handle reply: {}", message);
  5. String sagaId = message.getRequiredHeader(SagaReplyHeaders.REPLY_SAGA_ID);
  6. String sagaType = message.getRequiredHeader(SagaReplyHeaders.REPLY_SAGA_TYPE);
  7. SagaInstance sagaInstance = sagaInstanceRepository.find(sagaType, sagaId);
  8. Data sagaData = SagaDataSerde.deserializeSagaData(sagaInstance.getSerializedSagaData());
  9. message.getHeader(SagaReplyHeaders.REPLY_LOCKED).ifPresent(lockedTarget -> {
  10. String destination = message.getRequiredHeader(CommandMessageHeaders.inReply(CommandMessageHeaders.DESTINATION));
  11. sagaInstance.addDestinationsAndResources(singleton(new DestinationAndResource(destination, lockedTarget)));
  12. });
  13. String currentState = sagaInstance.getStateName();
  14. logger.info("Current state={}", currentState);
  15. SagaActions<Data> actions = getStateDefinition().handleReply(currentState, sagaData, message);
  16. logger.info("Handled reply. Sending commands {}", actions.getCommands());
  17. processActions(sagaId, sagaInstance, sagaData, actions);
  18. }

代码示例来源:origin: eventuate-tram/eventuate-tram-sagas

  1. @Test
  2. public void shouldReleaseLockAndUnstashMessage() {
  3. String sagaId1 = idGenerator.genId().toString();
  4. String sagaId2 = idGenerator.genId().toString();
  5. String target = "/target/" + idGenerator.genId().toString();
  6. String messageId = idGenerator.genId().toString();
  7. assertTrue(sagaLockManager.claimLock(sagaType, sagaId1, target));
  8. assertFalse(sagaLockManager.claimLock(sagaType, sagaId2, target));
  9. String payload = "hello";
  10. Message message = MessageBuilder.withPayload(payload).withHeader(Message.ID, messageId).build();
  11. sagaLockManager.stashMessage(sagaType, sagaId2, target, message);
  12. Optional<Message> unstashedMessage1 = sagaLockManager.unlock(sagaId1, target);
  13. assertTrue(unstashedMessage1.isPresent());
  14. assertEquals(messageId, unstashedMessage1.get().getId());
  15. assertEquals(payload, unstashedMessage1.get().getPayload());
  16. assertFalse(sagaLockManager.unlock(sagaId2, target).isPresent());
  17. }

代码示例来源:origin: io.eventuate.tram.sagas/eventuate-jpa-sagas-framework

  1. public void handleMessage(Message message) {
  2. logger.debug("handle message invoked {}", message);
  3. if (message.hasHeader(SagaReplyHeaders.REPLY_SAGA_ID)) {
  4. handleReply(message);
  5. } else if (message.hasHeader(EventMessageHeaders.EVENT_TYPE)) {
  6. String aggregateType = message.getRequiredHeader(EventMessageHeaders.AGGREGATE_TYPE);
  7. String aggregateId = message.getRequiredHeader(Message.PARTITION_ID);
  8. String eventType = message.getRequiredHeader(EventMessageHeaders.EVENT_TYPE);
  9. // TODO query the saga event routing table: (at, aId, et) -> [(sagaType, sagaId)]
  10. for (SagaTypeAndId sagaTypeAndId : aggregateInstanceSubscriptionsDAO.findSagas(aggregateType, aggregateId, eventType)) {
  11. handleAggregateInstanceEvent(sagaTypeAndId.getSagaType(), sagaTypeAndId.getSagaId(), message, aggregateType, aggregateId, eventType);
  12. }
  13. ;
  14. } else {
  15. logger.warn("Handle message doesn't know what to do with: {} ", message);
  16. }
  17. }

代码示例来源:origin: eventuate-tram/eventuate-tram-core

  1. @Override
  2. public String get(String key) {
  3. return message.getHeader(key).orElse(null);
  4. }

代码示例来源:origin: io.eventuate.tram.sagas/eventuate-jpa-sagas-framework

  1. @Override
  2. public void stashMessage(String sagaType, String sagaId, String target, Message message) {
  3. logger.debug("Stashing message from {} for {} : {}", sagaId, target, message);
  4. jdbcTemplate.update(insertIntoSagaStashTableSql,
  5. message.getRequiredHeader(Message.ID),
  6. target,
  7. sagaType,
  8. sagaId,
  9. JSonMapper.toJson(message.getHeaders()),
  10. message.getPayload()
  11. );
  12. }

代码示例来源:origin: eventuate-tram/eventuate-tram-core

  1. public void messageHandler(Message message) {
  2. String aggregateType = message.getRequiredHeader(EventMessageHeaders.AGGREGATE_TYPE);
  3. Optional<DomainEventHandler> handler = domainEventHandlers.findTargetMethod(message);
  4. if (!handler.isPresent()) {
  5. return;
  6. }
  7. DomainEvent param = JSonMapper.fromJson(message.getPayload(), handler.get().getEventClass());
  8. handler.get().invoke(new DomainEventEnvelopeImpl<>(message,
  9. aggregateType,
  10. message.getRequiredHeader(EventMessageHeaders.AGGREGATE_ID),
  11. message.getRequiredHeader(Message.ID),
  12. param));
  13. }

代码示例来源:origin: eventuate-tram/eventuate-tram-core

  1. private boolean headersMatch(Message message, Contract groovyDsl) {
  2. Map<String, String> headers = message.getHeaders();
  3. boolean matches = true;
  4. for (Header it : groovyDsl.getInput().getMessageHeaders().getEntries()) {
  5. String name = it.getName();
  6. Object value = it.getClientValue();
  7. Object valueInHeader = headers.get(name);
  8. matches &= value instanceof Pattern ?
  9. ((Pattern) value).matcher(valueInHeader.toString()).matches() :
  10. valueInHeader != null && valueInHeader.equals(value);
  11. }
  12. return matches;
  13. }
  14. }

代码示例来源:origin: eventuate-tram/eventuate-tram-core

  1. @Override
  2. protected ContractVerifierMessage convert(Message m) {
  3. return m == null ? null : contractVerifierMessaging.create(m.getPayload(), m.getHeaders());
  4. }
  5. }

代码示例来源:origin: eventuate-tram/eventuate-tram-core

  1. @Override
  2. public void accept(Message message) {
  3. try {
  4. queue.put(message.getPayload());
  5. } catch (InterruptedException e) {
  6. throw new RuntimeException(e);
  7. }
  8. }

相关文章