Example usage for org.springframework.messaging.simp.stomp StompHeaders getFirst

List of usage examples for org.springframework.messaging.simp.stomp StompHeaders getFirst

Introduction

In this page you can find the example usage for org.springframework.messaging.simp.stomp StompHeaders getFirst.

Prototype

@Override
@Nullable
public String getFirst(String headerName) 

Source Link

Document

Return the first header value for the given header name, if any.

Usage

From source file:org.springframework.integration.stomp.support.StompHeaderMapper.java

@Override
public Map<String, Object> toHeaders(StompHeaders source) {
    Map<String, Object> target = new HashMap<String, Object>();
    for (String name : source.keySet()) {
        if (shouldMapHeader(name, this.inboundHeaderNames)) {
            if (StompHeaders.CONTENT_TYPE.equals(name)) {
                target.put(MessageHeaders.CONTENT_TYPE, source.getContentType());
            } else {
                String key = name;
                if (IntegrationStompHeaders.HEADERS.contains(name)) {
                    key = IntegrationStompHeaders.PREFIX + name;
                }/*from w ww .ja  v a  2  s.  com*/
                target.put(key, source.getFirst(name));
            }
        }
    }
    return target;
}

From source file:org.springframework.messaging.simp.stomp.DefaultStompSession.java

@Override
public void handleMessage(Message<byte[]> message) {
    StompHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, StompHeaderAccessor.class);
    Assert.state(accessor != null, "No StompHeaderAccessor");

    accessor.setSessionId(this.sessionId);
    StompCommand command = accessor.getCommand();
    Map<String, List<String>> nativeHeaders = accessor.getNativeHeaders();
    StompHeaders stompHeaders = StompHeaders.readOnlyStompHeaders(nativeHeaders);
    boolean isHeartbeat = accessor.isHeartbeat();
    if (logger.isTraceEnabled()) {
        logger.trace("Received " + accessor.getDetailedLogMessage(message.getPayload()));
    }//from w  ww  . j a va  2 s  .  co  m

    try {
        if (StompCommand.MESSAGE.equals(command)) {
            DefaultSubscription subscription = this.subscriptions.get(stompHeaders.getSubscription());
            if (subscription != null) {
                invokeHandler(subscription.getHandler(), message, stompHeaders);
            } else if (logger.isDebugEnabled()) {
                logger.debug("No handler for: " + accessor.getDetailedLogMessage(message.getPayload())
                        + ". Perhaps just unsubscribed?");
            }
        } else {
            if (StompCommand.RECEIPT.equals(command)) {
                String receiptId = stompHeaders.getReceiptId();
                ReceiptHandler handler = this.receiptHandlers.get(receiptId);
                if (handler != null) {
                    handler.handleReceiptReceived();
                } else if (logger.isDebugEnabled()) {
                    logger.debug(
                            "No matching receipt: " + accessor.getDetailedLogMessage(message.getPayload()));
                }
            } else if (StompCommand.CONNECTED.equals(command)) {
                initHeartbeatTasks(stompHeaders);
                this.version = stompHeaders.getFirst("version");
                this.sessionFuture.set(this);
                this.sessionHandler.afterConnected(this, stompHeaders);
            } else if (StompCommand.ERROR.equals(command)) {
                invokeHandler(this.sessionHandler, message, stompHeaders);
            } else if (!isHeartbeat && logger.isTraceEnabled()) {
                logger.trace("Message not handled.");
            }
        }
    } catch (Throwable ex) {
        this.sessionHandler.handleException(this, command, stompHeaders, message.getPayload(), ex);
    }
}