@Override public Configurer configureEventSerializer(Function<Configuration, Serializer> eventSerializerBuilder) { eventSerializer.update(eventSerializerBuilder); return this; }
@Override public Serializer eventSerializer() { return eventSerializer.get(); }
@Override public EventProcessingConfigurer registerErrorHandler(String eventProcessorName, Function<Configuration, ErrorHandler> errorHandlerBuilder) { this.errorHandlers.put(eventProcessorName, new Component<>(() -> configuration, "errorHandler", errorHandlerBuilder)); return this; }
@Override public EventUpcasterChain upcasterChain() { return upcasterChain.get(); }
@Override public Configurer registerEventUpcaster(Function<Configuration, EventUpcaster> upcasterBuilder) { upcasters.add(new Component<>(config, "upcaster", upcasterBuilder)); return this; }
@Override public Serializer messageSerializer() { return messageSerializer.get(); }
public EventProcessorInfoConfiguration( Function<Configuration, EventProcessingConfiguration> eventProcessingConfiguration, Function<Configuration, AxonServerConnectionManager> connectionManager, Function<Configuration, AxonServerConfiguration> axonServerConfiguration) { this.eventProcessingConfiguration = new Component<>(() -> config, "eventProcessingConfiguration", eventProcessingConfiguration); this.connectionManager = new Component<>(() -> config, "connectionManager", connectionManager); this.axonServerConfiguration = new Component<>(() -> config, "connectionManager", axonServerConfiguration); this.eventProcessorControlService = new Component<>(() -> config, "eventProcessorControlService", c -> new EventProcessorControlService( this.connectionManager.get(), new EventProcessorController( this.eventProcessingConfiguration.get()))); this.processorInfoSource = new Component<>(() -> config, "eventProcessorInfoSource", c -> { GrpcEventProcessorInfoSource infoSource = new GrpcEventProcessorInfoSource(this.eventProcessingConfiguration.get(), this.connectionManager.get()); return new ScheduledEventProcessorInfoSource( this.axonServerConfiguration.get().getProcessorsNotificationInitialDelay(), this.axonServerConfiguration.get().getProcessorsNotificationRate(), infoSource); }); }
@Override public EventProcessingConfigurer registerTokenStore(String processingGroup, Function<Configuration, TokenStore> tokenStore) { this.tokenStore.put(processingGroup, new Component<>(() -> configuration, "tokenStore", tokenStore)); return this; }
@Override public Configurer configureMessageSerializer(Function<Configuration, Serializer> messageSerializerBuilder) { messageSerializer.update(messageSerializerBuilder); return this; }
@Override public Repository<A> repository() { return repository.get(); }
metaModel = new Component<>(() -> parent, "aggregateMetaModel<" + aggregate.getSimpleName() + ">", c -> c.getComponent( c.handlerDefinition(aggregate)) ).createModel(aggregate)); commandTargetResolver = new Component<>(() -> parent, name("commandTargetResolver"), c -> c.getComponent(CommandTargetResolver.class, AnnotationCommandTargetResolver::new)); snapshotTriggerDefinition = new Component<>(() -> parent, name("snapshotTriggerDefinition"), c -> NoSnapshotTriggerDefinition.INSTANCE); aggregateFactory = new Component<>(() -> parent, name("aggregateFactory"), c -> new GenericAggregateFactory<>(aggregate)); repository = new Component<>( () -> parent, "Repository<" + aggregate.getSimpleName() + ">", aggregateFactory.get(), snapshotTriggerDefinition.get(), c.parameterResolverFactory(), c.handlerDefinition(aggregate), .aggregateModel(metaModel.get()) .aggregateFactory(aggregateFactory.get()) .eventStore(c.eventStore()) .snapshotTriggerDefinition(snapshotTriggerDefinition.get()) .repositoryProvider(c::repository) .build(); });
@Override public EventProcessingConfigurer registerRollbackConfiguration(String name, Function<Configuration, RollbackConfiguration> rollbackConfigurationBuilder) { this.rollbackConfigurations.put(name, new Component<>(() -> configuration, "rollbackConfiguration", rollbackConfigurationBuilder)); return this; }
@Override public EventProcessingConfigurer registerDefaultErrorHandler( Function<Configuration, ErrorHandler> errorHandlerBuilder) { this.defaultErrorHandler.update(errorHandlerBuilder); return this; }
@Override public List<CorrelationDataProvider> correlationDataProviders() { return correlationProviders.get(); }
String managerName = configurer.type.getSimpleName() + "Manager"; String repositoryName = configurer.type.getSimpleName() + "Repository"; store = new Component<>(configuration, "sagaStore", configurer.storeBuilder); Function<Configuration, SagaRepository<S>> repositoryBuilder = configurer.repositoryBuilder; if (repositoryBuilder == null) { repositoryBuilder = c -> AnnotatedSagaRepository.<S>builder() .sagaType(configurer.type) .sagaStore(store.get()) .resourceInjector(c.resourceInjector()) .parameterResolverFactory(c.parameterResolverFactory()) .build(); repository = new Component<>(configuration, repositoryName, repositoryBuilder); return AnnotatedSagaManager.<S>builder() .sagaType(configurer.type) .sagaRepository(repository.get()) .parameterResolverFactory(c.parameterResolverFactory()) .handlerDefinition(c.handlerDefinition(configurer.type)) }; manager = new Component<>(configuration, managerName, managerBuilder);
@Override public EventProcessingConfigurer registerTransactionManager(String name, Function<Configuration, TransactionManager> transactionManagerBuilder) { this.transactionManagers.put(name, new Component<>(() -> configuration, "transactionManager", transactionManagerBuilder)); return this; }
/** * Defines the repository to use to load and store Aggregates of this type. The builder function receives the * global configuration object from which it can retrieve components the repository depends on. * * @param repositoryBuilder The builder function for the repository * @return this configurer instance for chaining */ public AggregateConfigurer<A> configureRepository(Function<Configuration, Repository<A>> repositoryBuilder) { repository.update(repositoryBuilder); return this; }
@Override public HandlerDefinition handlerDefinition(Class<?> inspectedType) { return handlerDefinition.get().apply(inspectedType); } }