Example usage for org.springframework.integration.channel ChannelInterceptorAware addInterceptor

List of usage examples for org.springframework.integration.channel ChannelInterceptorAware addInterceptor

Introduction

In this page you can find the example usage for org.springframework.integration.channel ChannelInterceptorAware addInterceptor.

Prototype

void addInterceptor(ChannelInterceptor interceptor);

Source Link

Document

Add a channel interceptor to the end of the list.

Usage

From source file:xolpoc.plugins.StreamPlugin.java

private MessageChannel tapOutputChannel(MessageChannel tapChannel, ChannelInterceptorAware outputChannel) {
    outputChannel.addInterceptor(new WireTap(tapChannel));
    return tapChannel;
}

From source file:org.springframework.integration.config.GlobalChannelInterceptorProcessor.java

/**
 * Adds any interceptor whose pattern matches against the channel's name.
 *//*w  ww. j  ava 2 s.c o  m*/
private void addMatchingInterceptors(ChannelInterceptorAware channel, String beanName) {
    if (logger.isDebugEnabled()) {
        logger.debug("Applying global interceptors on channel '" + beanName + "'");
    }
    List<GlobalChannelInterceptorWrapper> tempInterceptors = new ArrayList<GlobalChannelInterceptorWrapper>();
    for (GlobalChannelInterceptorWrapper globalChannelInterceptorWrapper : this.positiveOrderInterceptors) {
        String[] patterns = globalChannelInterceptorWrapper.getPatterns();
        patterns = StringUtils.trimArrayElements(patterns);
        if (PatternMatchUtils.simpleMatch(patterns, beanName)) {
            tempInterceptors.add(globalChannelInterceptorWrapper);
        }
    }
    Collections.sort(tempInterceptors, this.comparator);
    for (GlobalChannelInterceptorWrapper next : tempInterceptors) {
        ChannelInterceptor channelInterceptor = next.getChannelInterceptor();
        if (!(channelInterceptor instanceof VetoCapableInterceptor)
                || ((VetoCapableInterceptor) channelInterceptor).shouldIntercept(beanName, channel)) {
            channel.addInterceptor(channelInterceptor);
        }
    }

    tempInterceptors.clear();
    for (GlobalChannelInterceptorWrapper globalChannelInterceptorWrapper : this.negativeOrderInterceptors) {
        String[] patterns = globalChannelInterceptorWrapper.getPatterns();
        patterns = StringUtils.trimArrayElements(patterns);
        if (PatternMatchUtils.simpleMatch(patterns, beanName)) {
            tempInterceptors.add(globalChannelInterceptorWrapper);
        }
    }
    Collections.sort(tempInterceptors, this.comparator);
    if (!tempInterceptors.isEmpty()) {
        for (int i = tempInterceptors.size() - 1; i >= 0; i--) {
            ChannelInterceptor channelInterceptor = tempInterceptors.get(i).getChannelInterceptor();
            if (!(channelInterceptor instanceof VetoCapableInterceptor)
                    || ((VetoCapableInterceptor) channelInterceptor).shouldIntercept(beanName, channel)) {
                channel.addInterceptor(0, channelInterceptor);
            }
        }
    }
}