@Override public EventProcessingConfigurer registerHandlerInterceptor(String processorName, Function<Configuration, MessageHandlerInterceptor<? super EventMessage<?>>> interceptorBuilder) { if (configuration != null) { eventProcessor(processorName).ifPresent(eventProcessor -> eventProcessor .registerHandlerInterceptor(interceptorBuilder.apply(configuration))); } this.handlerInterceptorsBuilders.computeIfAbsent(processorName, k -> new ArrayList<>()) .add(interceptorBuilder); return this; }
private EventProcessor buildEventProcessor(List<Function<Configuration, EventHandlerInvoker>> builderFunctions, String processorName) { List<EventHandlerInvoker> invokers = builderFunctions .stream() .map(invokerBuilder -> invokerBuilder.apply(configuration)) .collect(Collectors.toList()); MultiEventHandlerInvoker multiEventHandlerInvoker = new MultiEventHandlerInvoker(invokers); EventProcessor eventProcessor = eventProcessorBuilders .getOrDefault(processorName, defaultEventProcessorBuilder) .build(processorName, configuration, multiEventHandlerInvoker); handlerInterceptorsBuilders.getOrDefault(processorName, new ArrayList<>()) .stream() .map(hi -> hi.apply(configuration)) .forEach(eventProcessor::registerHandlerInterceptor); defaultHandlerInterceptors.stream() .map(f -> f.apply(configuration, processorName)) .filter(Objects::nonNull) .forEach(eventProcessor::registerHandlerInterceptor); eventProcessor.registerHandlerInterceptor(new CorrelationDataInterceptor<>(configuration .correlationDataProviders())); return eventProcessor; }
@Override public EventProcessingConfigurer registerHandlerInterceptor(String processorName, Function<Configuration, MessageHandlerInterceptor<? super EventMessage<?>>> interceptorBuilder) { if (configuration != null) { eventProcessor(processorName).ifPresent(eventProcessor -> eventProcessor .registerHandlerInterceptor(interceptorBuilder.apply(configuration))); } this.handlerInterceptorsBuilders.computeIfAbsent(processorName, k -> new ArrayList<>()) .add(interceptorBuilder); return this; }
private EventProcessor buildEventProcessor(List<Function<Configuration, EventHandlerInvoker>> builderFunctions, String processorName) { List<EventHandlerInvoker> invokers = builderFunctions .stream() .map(invokerBuilder -> invokerBuilder.apply(configuration)) .collect(Collectors.toList()); MultiEventHandlerInvoker multiEventHandlerInvoker = new MultiEventHandlerInvoker(invokers); EventProcessor eventProcessor = eventProcessorBuilders .getOrDefault(processorName, defaultEventProcessorBuilder) .build(processorName, configuration, multiEventHandlerInvoker); handlerInterceptorsBuilders.getOrDefault(processorName, new ArrayList<>()) .stream() .map(hi -> hi.apply(configuration)) .forEach(eventProcessor::registerHandlerInterceptor); defaultHandlerInterceptors.stream() .map(f -> f.apply(configuration, processorName)) .filter(Objects::nonNull) .forEach(eventProcessor::registerHandlerInterceptor); eventProcessor.registerHandlerInterceptor(new CorrelationDataInterceptor<>(configuration .correlationDataProviders())); return eventProcessor; }