Example usage for org.springframework.messaging.support GenericMessage GenericMessage

List of usage examples for org.springframework.messaging.support GenericMessage GenericMessage

Introduction

In this page you can find the example usage for org.springframework.messaging.support GenericMessage GenericMessage.

Prototype

public GenericMessage(T payload, MessageHeaders headers) 

Source Link

Document

A constructor with the MessageHeaders instance to use.

Usage

From source file:it.pcan.test.integration.amqp.ErrorHandler.java

@ServiceActivator
public Message handleException(Message msg) {
    System.out.println("Exception thrown: " + msg);
    MessageHandlingException payload = (MessageHandlingException) msg.getPayload();
    MessageHeaders headers = payload.getFailedMessage().getHeaders();
    HashMap<String, Object> newHeaders = new HashMap<>(headers);

    newHeaders.putAll(msg.getHeaders());
    Throwable cause = payload.getCause();
    RuntimeException ex = (cause instanceof RuntimeException) ? (RuntimeException) cause
            : new RuntimeException(cause);

    Message m = new GenericMessage(new RuntimeExceptionHolder(ex), newHeaders);
    return m;/*from ww  w . j a  v  a2s.c  o  m*/
}

From source file:it.pcan.test.integration.amqp.ClientErrorInterceptor.java

@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
    if (message.getPayload() instanceof RuntimeExceptionHolder) {
        RuntimeExceptionHolder holder = (RuntimeExceptionHolder) message.getPayload();
        throw holder.getException();
    }/*from  w w w  .  j ava 2s . com*/
    if (message.getPayload() instanceof NullObject) {
        /**
         * @see NullReturningHandlerAdvice
         */
        MessageHeaders headers = message.getHeaders();
        Map<String, Object> newHeaders = new HashMap<>(headers);
        newHeaders.put("replyChannel", "nullChannel");
        return new GenericMessage(message.getPayload(), newHeaders);
    }
    return message;
}

From source file:com.hybris.datahub.service.impl.DefaultMarketplaceIntegrationService.java

@Override
public void processRawItem(final String rawItemType, final Map<String, String> csv) {
    if (null == csv) {
        return;/*from  www.  ja v a  2 s .c o m*/
    }
    final List<Map<String, String>> rawFragments = new LinkedList<Map<String, String>>();
    rawFragments.add(csv);

    final boolean result = rawFragmentInputChannel.send(new GenericMessage<List<Map<String, String>>>(
            rawFragments, constructMessageHeader(rawItemType, getFeedName(rawItemType))));
    if (LOG.isInfoEnabled()) {
        LOG.info("Process result : " + result + ", item type :" + rawItemType + " fragment: " + csv.toString());
    }
}

From source file:org.openwms.common.comm.err.tcp.ErrorTelegramMapper.java

/**
 * {@inheritDoc}/*  w w  w  .ja v  a 2  s .c  o m*/
 */
@Override
public Message<ErrorMessage> mapTo(String telegram, Map<String, Object> headers) {
    int startPayload = LENGTH_HEADER + forType().length();
    int startCreateDate = startPayload + ERROR_CODE_LENGTH;
    try {
        return new GenericMessage<>(new ErrorMessage.Builder()
                .withErrorCode(telegram.substring(startPayload, startCreateDate))
                .withCreateDate(telegram.substring(startCreateDate, startCreateDate + DATE_LENGTH)).build(),
                CommonMessageFactory.createHeaders(telegram, headers));
    } catch (ParseException e) {
        throw new MessageMismatchException(e.getMessage());
    }
}

From source file:org.openwms.common.comm.synq.tcp.TimesyncTelegramMapper.java

/**
 * {@inheritDoc}/* w  w w .j  ava  2s . com*/
 */
@Override
public Message<TimesyncRequest> mapTo(String telegram, Map<String, Object> headers) {
    LOGGER.debug("Telegram to transform: [{}]", telegram);

    int startSendertime = LENGTH_HEADER + forType().length();
    TimesyncRequest request = new TimesyncRequest();
    try {
        request.setSenderTimer(asDate(telegram.substring(startSendertime, startSendertime + DATE_LENGTH)));
        GenericMessage<TimesyncRequest> result = new GenericMessage<>(request,
                CommonMessageFactory.createHeaders(telegram, headers));
        LOGGER.debug("Transformed telegram into TimesyncRequest message:" + result);
        return result;
    } catch (ParseException e) {
        throw new MessageMismatchException(e.getMessage());
    }
}

From source file:com.hybris.datahub.service.impl.DefaultMarketplaceIntegrationService.java

@Override
public void processRawItem(String rawItemType, List<Map<String, String>> csv) {
    if (null == csv) {
        return;/*from   w  w  w.  ja  v  a 2s .  com*/
    }

    final List<Map<String, String>> rawFragments = new LinkedList<Map<String, String>>();
    rawFragments.addAll(csv);

    final boolean result = rawFragmentInputChannel.send(new GenericMessage<List<Map<String, String>>>(
            rawFragments, constructMessageHeader(rawItemType, getFeedName(rawItemType))));
    if (LOG.isInfoEnabled()) {
        LOG.info("Process result : " + result + ", item type :" + rawItemType + " fragment: " + csv.toString());
    }
}

From source file:org.springframework.cloud.aws.messaging.support.converter.NotificationRequestConverter.java

@Override
public Object fromMessage(Message<?> message, Class<?> targetClass) {
    Assert.notNull(message, "message must not be null");
    Assert.notNull(targetClass, "target class must not be null");

    JsonNode jsonNode;// ww w.  j a  v  a2 s .  c o m
    try {
        jsonNode = this.jsonMapper.readTree(message.getPayload().toString());
    } catch (Exception e) {
        throw new MessageConversionException("Could not read JSON", e);
    }
    if (!jsonNode.has("Type")) {
        throw new MessageConversionException(
                "Payload: '" + message.getPayload() + "' does not contain a Type attribute", null);
    }

    if (!"Notification".equals(jsonNode.findValue("Type").asText())) {
        throw new MessageConversionException(
                "Payload: '" + message.getPayload() + "' is not a valid notification", null);
    }

    if (!jsonNode.has("Message")) {
        throw new MessageConversionException(
                "Payload: '" + message.getPayload() + "' does not contain a message", null);
    }

    String messagePayload = jsonNode.findPath("Message").asText();
    GenericMessage<String> genericMessage = new GenericMessage<>(messagePayload,
            getMessageAttributesAsMessageHeaders(jsonNode.findPath("MessageAttributes")));
    return new NotificationRequest(jsonNode.findPath("Subject").asText(),
            this.payloadConverter.fromMessage(genericMessage, targetClass));
}

From source file:org.openwms.common.comm.sysu.tcp.SYSUTelegramMapper.java

/**
 * {@inheritDoc}/*from  w w  w  .  j ava  2  s. com*/
 */
@Override
public Message<SystemUpdateMessage> mapTo(String telegram, Map<String, Object> headers) {
    LOGGER.debug("Telegram to transform: [{}]", telegram);
    if (provider == null) {
        throw new RuntimeException("Telegram handling " + SystemUpdateMessage.IDENTIFIER + " not supported");
    }
    int startLocationGroup = LENGTH_HEADER + forType().length();
    int startErrorCode = startLocationGroup + provider.lengthLocationGroupName();
    int startCreateDate = startErrorCode + ERROR_CODE_LENGTH;

    SystemUpdateMessage message;
    try {
        message = new SystemUpdateMessage.Builder()
                .withLocationGroupName(telegram.substring(startLocationGroup, startErrorCode))
                .withErrorCode(telegram.substring(startErrorCode, startCreateDate))
                .withCreateDate(telegram.substring(startCreateDate, startCreateDate + DATE_LENGTH)).build();
        return new GenericMessage<>(message, CommonMessageFactory.createHeaders(telegram, headers));
    } catch (ParseException e) {
        throw new MessageMismatchException(e.getMessage());
    }
}

From source file:org.openwms.common.comm.req.tcp.RequestTelegramMapper.java

/**
 * {@inheritDoc}//w ww. ja  v  a2 s. co m
 */
@Override
public Message<RequestMessage> mapTo(String telegram, Map<String, Object> headers) {
    if (provider == null) {
        throw new RuntimeException("Telegram handling " + RequestMessage.IDENTIFIER + " not supported");
    }
    int startPayload = LENGTH_HEADER + forType().length();
    int startActualLocation = startPayload + provider.barcodeLength();
    int startTargetLocation = startActualLocation + provider.locationIdLength();
    int startErrorCode = startTargetLocation + provider.locationIdLength();
    int startCreateDate = startErrorCode + Payload.ERROR_CODE_LENGTH;

    RequestMessage message;
    try {
        message = new RequestMessage.Builder(provider)
                .withBarcode(telegram.substring(startPayload, startActualLocation))
                .withActualLocation(telegram.substring(startActualLocation, startTargetLocation))
                .withTargetLocation(telegram.substring(startTargetLocation, startErrorCode))
                .withErrorCode(telegram.substring(startErrorCode, startCreateDate))
                .withCreateDate(telegram.substring(startCreateDate, startCreateDate + Payload.DATE_LENGTH))
                .build();
        return new GenericMessage<>(message, CommonMessageFactory.createHeaders(telegram, headers));
    } catch (ParseException e) {
        throw new MessageMismatchException(e.getMessage());
    }
}

From source file:io.jmnarloch.spring.cloud.stream.binder.hermes.HermesClientBinderTest.java

@Test
public void shouldPublishMessage() {

    // given/*from   ww  w  . ja  va2 s  .  c  o  m*/
    DirectChannel output = new DirectChannel();

    // when
    Binding<MessageChannel> binding = binder.bindProducer(OUTPUT_NAME, output,
            new ExtendedProducerProperties<>(new HermesProducerProperties()));

    // then
    output.send(new GenericMessage<>(MESSAGE, json()));
    verify(hermesSender).send(any(URI.class), any(HermesMessage.class));
    binding.unbind();
}