@Override public final Message<T> receive() { return buildMessage(doReceive()); }
/** * Expressions with which to enhance headers. * Only applies to subclasses of {@link AbstractMessageSource}. * @param headerExpressions the header expressions. * @return the spec. * @since 5.0.1 */ public S messageHeaders(Map<String, Expression> headerExpressions) { Assert.state(this.target instanceof AbstractMessageSource, () -> "'MessageSource' must be an instance of 'AbstractMessageSource', not " + this.target.getClass()); ((AbstractMessageSource<?>) this.target).setHeaderExpressions(headerExpressions); return _this(); }
private Map<String, Object> evaluateHeaders() { return ExpressionEvalMap.from(this.headerExpressions) .usingEvaluationContext(getEvaluationContext()) .build(); }
@SuppressWarnings("unchecked") protected Message<T> buildMessage(Object result) { Message<T> message = null; Map<String, Object> headers = evaluateHeaders(); if (result instanceof AbstractIntegrationMessageBuilder) { if (!CollectionUtils.isEmpty(headers)) { message = getMessageBuilderFactory() .fromMessage(message) .copyHeaders(headers) throw new MessagingException("MessageSource returned unexpected type.", e); message = getMessageBuilderFactory() .withPayload(payload) .copyHeaders(headers) incrementReceiveCounter();
private void incrementReceiveCounter() { if (this.receiveCounter == null) { this.receiveCounter = this.metricsCaptor.counterBuilder(RECEIVE_COUNTER_NAME) .tag("name", getComponentName() == null ? "unknown" : getComponentName()) .tag("type", "source") .tag("result", "success") .tag("exception", "none") .description("Messages received") .build(); } this.receiveCounter.increment(); }
assertTrue(channel.isLoggingEnabled()); assertTrue(handler.isLoggingEnabled()); assertTrue(source.isLoggingEnabled()); channel.setCountsEnabled(true); channel.setStatsEnabled(true); assertFalse(channel.isLoggingEnabled()); assertFalse(handler.isLoggingEnabled()); assertFalse(source.isLoggingEnabled()); assertTrue(channel.isCountsEnabled()); assertTrue(channel.isStatsEnabled());
private Map<String, Object> evaluateHeaders() { Map<String, Object> results = new HashMap<>(); for (Map.Entry<String, Expression> entry : this.headerExpressions.entrySet()) { Object headerValue = this.evaluateExpression(entry.getValue()); if (headerValue != null) { results.put(entry.getKey(), headerValue); } } return results; }
@SuppressWarnings("unchecked") protected Message<T> buildMessage(Object result) { Message<T> message = null; Map<String, Object> headers = evaluateHeaders(); if (result instanceof AbstractIntegrationMessageBuilder) { if (!CollectionUtils.isEmpty(headers)) { message = getMessageBuilderFactory() .fromMessage(message) .copyHeaders(headers) throw new MessagingException("MessageSource returned unexpected type.", e); message = getMessageBuilderFactory() .withPayload(payload) .copyHeaders(headers) incrementReceiveCounter();
private void incrementReceiveCounter() { if (this.receiveCounter == null) { this.receiveCounter = this.metricsCaptor.counterBuilder(RECEIVE_COUNTER_NAME) .tag("name", getComponentName() == null ? "unknown" : getComponentName()) .tag("type", "source") .tag("result", "success") .tag("exception", "none") .description("Messages received") .build(); } this.receiveCounter.increment(); }
@Override public final Message<T> receive() { return buildMessage(doReceive()); }
/** * Expressions with which to enhance headers. * Only applies to subclasses of {@link AbstractMessageSource}. * @param headerExpressions the header expressions. * @return the spec. * @since 5.0.1 */ public S messageHeaders(Map<String, Expression> headerExpressions) { Assert.state(this.target instanceof AbstractMessageSource, () -> "'MessageSource' must be an instance of 'AbstractMessageSource', not " + this.target.getClass()); ((AbstractMessageSource<?>) this.target).setHeaderExpressions(headerExpressions); return _this(); }