@Override public void shutdown() { eventProcessors.forEach((name, component) -> component.get().shutDown()); } //</editor-fold>
@Override public void start() { eventProcessors.forEach((name, component) -> component.get().start()); }
@Override public void notifyInformation() { eventProcessors.forEach(processor -> { PlatformInboundInstruction instruction = mapping.apply(processor).instruction(); if (!instruction.equals(lastProcessorsInfo.get(processor.getName()))){ send.accept(instruction); } lastProcessorsInfo.put(processor.getName(), instruction); }); }
@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; }
/** * Register the given {@code interceptorBuilder} to build an Message Handling Interceptor for the Event Processor * with given {@code processorName}. * <p> * The {@code interceptorBuilder} may return {@code null}, in which case the return value is ignored. * * @param processorName The name of the processor to register the interceptor on * @param interceptorBuilder The function providing the interceptor to register, or {@code null} * @return event processing configuration for chaining purposes */ public EventProcessingConfiguration registerHandlerInterceptor(String processorName, Function<Configuration, MessageHandlerInterceptor<? super EventMessage<?>>> interceptorBuilder) { if (configuration != null) { eventProcessor(processorName).ifPresent(eventProcessor -> eventProcessor .registerInterceptor(interceptorBuilder.apply(configuration))); } handlerInterceptorsBuilders.computeIfAbsent(processorName, k -> new ArrayList<>()) .add(interceptorBuilder); return this; }
/** * Returns a list of interceptors for a processor with given {@code processorName}. * * @param processorName The name of the processor * @return a list of interceptors for a processor with given {@code processorName} */ public List<MessageHandlerInterceptor<? super EventMessage<?>>> interceptorsFor(String processorName) { Assert.state(configuration != null, () -> "Configuration is not initialized yet"); Component<EventProcessor> eventProcessorComponent = eventProcessors.get(processorName); if (eventProcessorComponent == null) { return emptyList(); } return eventProcessorComponent.get().getHandlerInterceptors(); }
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; }
public void startProcessor(String processor){ getEventProcessor(processor).start(); this.startHandlers.forEach(consumer -> consumer.accept(processor)); }
public void pauseProcessor(String processor){ getEventProcessor(processor).shutDown(); this.pauseHandlers.forEach(consumer -> consumer.accept(processor)); }
@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; }
@Override public void notifyInformation() { eventProcessors.forEach(processor -> { PlatformInboundInstruction instruction = mapping.apply(processor).instruction(); if (!instruction.equals(lastProcessorsInfo.get(processor.getName()))){ send.accept(instruction); } lastProcessorsInfo.put(processor.getName(), instruction); }); }
protected void prepareForBenchmark() { eventProcessor.start(); try { Thread.sleep(1000); } catch (InterruptedException e) { throw new IllegalStateException("Benchmark was interrupted", e); } }
protected void cleanUpAfterBenchmark() { executorService.shutdown(); eventProcessor.shutDown(); eventStore.shutDown(); }
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 void start() { eventProcessors.forEach((name, component) -> component.get().start()); }
@Override public void shutdown() { eventProcessors.forEach((name, component) -> component.get().shutDown()); } //</editor-fold>
@Override public void start() { eventProcessors.forEach((name, component) -> component.get().start()); }
@Override public void shutdown() { eventProcessors.forEach((name, component) -> component.get().shutDown()); }
public void startProcessor(String processor){ getEventProcessor(processor).start(); this.startHandlers.forEach(consumer -> consumer.accept(processor)); }
public void pauseProcessor(String processor){ getEventProcessor(processor).shutDown(); this.pauseHandlers.forEach(consumer -> consumer.accept(processor)); }