Пример #1
0
        public MongoDbPublishedVersionStore_Tests()
        {
            var assemblies = new[] { Assembly.GetExecutingAssembly() };

            var enode = ECommonConfiguration.Create()
                        .UseAutofac()
                        .RegisterCommonComponents()
                        .UseLog4Net()
                        .UseJsonNet()
                        .CreateENode(new ConfigurationSetting())
                        .RegisterBusinessComponents(assemblies)
                        .RegisterENodeComponents()
                        .UseMongoDbPublishedVersionStore()
                        .UseMongoDbAggregateSnapshotter();

            enode.GetCommonConfiguration()
            .BuildContainer();

            enode.InitializeBusinessAssemblies(assemblies)
            .InitializeMongoDbPublishedVersionStore(_mongoDbConfiguration)
            .InitializeMongoDbAggregateSnapshotter(_mongoDbConfiguration);

            _store            = ObjectContainer.Resolve <IPublishedVersionStore>();
            _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>();
        }
Пример #2
0
        private void InitializeENode(
            bool useMockEventStore                  = false,
            bool useMockPublishedVersionStore       = false,
            bool useMockDomainEventPublisher        = false,
            bool useMockApplicationMessagePublisher = false,
            bool useMockDomainExceptionPublisher    = false)
        {
            var connectionString = ConfigurationManager.AppSettings["connectionString"];
            var assemblies       = new[]
            {
                Assembly.GetExecutingAssembly()
            };

            if (_serilogLoggerFactory == null)
            {
                _serilogLoggerFactory = new SerilogLoggerFactory(defaultLoggerFileName: "logs\\default")
                                        .AddFileLogger("ECommon", "logs\\ecommon")
                                        .AddFileLogger("EQueue", "logs\\equeue")
                                        .AddFileLogger("ENode", "logs\\enode");
            }
            _enodeConfiguration = ECommonConfiguration
                                  .Create()
                                  .UseAutofac()
                                  .RegisterCommonComponents()
                                  .UseSerilog(_serilogLoggerFactory)
                                  .UseJsonNet()
                                  .RegisterUnhandledExceptionHandler()
                                  .CreateENode()
                                  .RegisterENodeComponents()
                                  .UseEventStore(useMockEventStore)
                                  .UsePublishedVersionStore(useMockPublishedVersionStore)
                                  .RegisterBusinessComponents(assemblies)
                                  .InitializeEQueue()
                                  .UseEQueue(useMockDomainEventPublisher, useMockApplicationMessagePublisher, useMockDomainExceptionPublisher)
                                  .BuildContainer();

            if (!useMockEventStore)
            {
                _enodeConfiguration.InitializeSqlServerEventStore(connectionString);
            }
            if (!useMockPublishedVersionStore)
            {
                _enodeConfiguration.InitializeSqlServerPublishedVersionStore(connectionString);
            }

            _enodeConfiguration
            .InitializeBusinessAssemblies(assemblies)
            .StartEQueue()
            .Start();

            _commandService              = ObjectContainer.Resolve <ICommandService>();
            _memoryCache                 = ObjectContainer.Resolve <IMemoryCache>();
            _eventStore                  = ObjectContainer.Resolve <IEventStore>();
            _publishedVersionStore       = ObjectContainer.Resolve <IPublishedVersionStore>();
            _domainEventPublisher        = ObjectContainer.Resolve <IMessagePublisher <DomainEventStreamMessage> >();
            _applicationMessagePublisher = ObjectContainer.Resolve <IMessagePublisher <IApplicationMessage> >();
            _domainExceptionPublisher    = ObjectContainer.Resolve <IMessagePublisher <IDomainException> >();
            _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(BaseTest));
            _logger.Info("----ENode initialized.");
        }
Пример #3
0
 public ENodeKafkaTestBase()
 {
     _commandService              = ObjectContainer.Resolve <ICommandService>();
     _memoryCache                 = ObjectContainer.Resolve <IMemoryCache>();
     _eventStore                  = ObjectContainer.Resolve <IEventStore>();
     _publishedVersionStore       = ObjectContainer.Resolve <IPublishedVersionStore>();
     _domainEventPublisher        = ObjectContainer.Resolve <IMessagePublisher <DomainEventStreamMessage> >();
     _applicationMessagePublisher = ObjectContainer.Resolve <IMessagePublisher <IApplicationMessage> >();
     _domainExceptionPublisher    = ObjectContainer.Resolve <IMessagePublisher <IDomainException> >();
     _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(nameof(ENodeKafkaTestBase));
     _logger.Info("----ENode initialized.");
 }
Пример #4
0
        private static void InitializeENode(
            bool useMockEventStore                    = false,
            bool useMockPublishedVersionStore         = false,
            bool useMockDomainEventPublisher          = false,
            bool useMockApplicationMessagePublisher   = false,
            bool useMockPublishableExceptionPublisher = false)
        {
            var setting    = new ConfigurationSetting(ConfigurationManager.AppSettings["connectionString"]);
            var assemblies = new[]
            {
                Assembly.GetExecutingAssembly()
            };

            _enodeConfiguration = ECommonConfiguration
                                  .Create()
                                  .UseAutofac()
                                  .RegisterCommonComponents()
                                  .UseLog4Net()
                                  .UseJsonNet()
                                  .RegisterUnhandledExceptionHandler()
                                  .CreateENode(setting)
                                  .RegisterENodeComponents()
                                  .UseEventStore(useMockEventStore)
                                  .UsePublishedVersionStore(useMockPublishedVersionStore)
                                  .RegisterBusinessComponents(assemblies)
                                  .UseEQueue(useMockDomainEventPublisher, useMockApplicationMessagePublisher, useMockPublishableExceptionPublisher)
                                  .BuildContainer();

            if (!useMockEventStore)
            {
                _enodeConfiguration.InitializeSqlServerEventStore();
            }
            if (!useMockPublishedVersionStore)
            {
                _enodeConfiguration.InitializeSqlServerPublishedVersionStore();
            }

            _enodeConfiguration
            .InitializeBusinessAssemblies(assemblies)
            .StartEQueue()
            .Start();

            _commandService                = ObjectContainer.Resolve <ICommandService>();
            _memoryCache                   = ObjectContainer.Resolve <IMemoryCache>();
            _eventStore                    = ObjectContainer.Resolve <IEventStore>();
            _publishedVersionStore         = ObjectContainer.Resolve <IPublishedVersionStore>();
            _domainEventPublisher          = ObjectContainer.Resolve <IMessagePublisher <DomainEventStreamMessage> >();
            _applicationMessagePublisher   = ObjectContainer.Resolve <IMessagePublisher <IApplicationMessage> >();
            _publishableExceptionPublisher = ObjectContainer.Resolve <IMessagePublisher <IPublishableException> >();
            _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(BaseTest));
            _logger.Info("ENode initialized.");
        }
Пример #5
0
 public DefaultProcessingEventProcessor(IPublishedVersionStore publishedVersionStore, IMessageDispatcher dispatcher, IOHelper ioHelper, ILoggerFactory loggerFactory, IScheduleService scheduleService)
 {
     _mailboxDict           = new ConcurrentDictionary <string, ProcessingEventMailBox>();
     _publishedVersionStore = publishedVersionStore;
     _dispatcher            = dispatcher;
     _ioHelper        = ioHelper;
     _logger          = loggerFactory.Create(GetType().FullName);
     _scheduleService = scheduleService;
     _taskName        = "CleanInactiveProcessingEventMailBoxes_" + DateTime.Now.Ticks + new Random().Next(10000);
     _timeoutSeconds  = ENodeConfiguration.Instance.Setting.AggregateRootMaxInactiveSeconds;
     _processorName   = ENodeConfiguration.Instance.Setting.DomainEventProcessorName;
     _scanExpiredAggregateIntervalMilliseconds = ENodeConfiguration.Instance.Setting.ScanExpiredAggregateIntervalMilliseconds;
 }
Пример #6
0
        private static void InitializeENode(
            bool useMockCommandStore = false,
            bool useMockEventStore = false,
            bool useMockPublishedVersionStore = false,
            bool useMockDomainEventPublisher = false,
            bool useMockApplicationMessagePublisher = false,
            bool useMockPublishableExceptionPublisher = false)
        {
            var setting = new ConfigurationSetting(ConfigurationManager.AppSettings["connectionString"]);
            var assemblies = new[]
            {
                Assembly.GetExecutingAssembly()
            };

            _enodeConfiguration = ECommonConfiguration
                .Create()
                .UseAutofac()
                .RegisterCommonComponents()
                .UseLog4Net()
                .UseJsonNet()
                .RegisterUnhandledExceptionHandler()
                .CreateENode(setting)
                .RegisterENodeComponents()
                .UseCommandStore(useMockCommandStore)
                .UseEventStore(useMockEventStore)
                .UsePublishedVersionStore(useMockPublishedVersionStore)
                .RegisterBusinessComponents(assemblies)
                .InitializeBusinessAssemblies(assemblies)
                .UseEQueue(useMockDomainEventPublisher, useMockApplicationMessagePublisher, useMockPublishableExceptionPublisher)
                .StartEQueue();

            _commandService = ObjectContainer.Resolve<ICommandService>();
            _memoryCache = ObjectContainer.Resolve<IMemoryCache>();
            _commandStore = ObjectContainer.Resolve<ICommandStore>();
            _eventStore = ObjectContainer.Resolve<IEventStore>();
            _publishedVersionStore = ObjectContainer.Resolve<IPublishedVersionStore>();
            _domainEventPublisher = ObjectContainer.Resolve<IMessagePublisher<DomainEventStreamMessage>>();
            _applicationMessagePublisher = ObjectContainer.Resolve<IMessagePublisher<IApplicationMessage>>();
            _publishableExceptionPublisher = ObjectContainer.Resolve<IMessagePublisher<IPublishableException>>();
            _logger = ObjectContainer.Resolve<ILoggerFactory>().Create(typeof(BaseTest));
            _logger.Info("ENode initialized.");
        }
Пример #7
0
 public DomainEventStreamMessageHandler(IPublishedVersionStore publishedVersionStore, IMessageDispatcher dispatcher, IOHelper ioHelper, ILoggerFactory loggerFactory)
     : base(publishedVersionStore, ioHelper, loggerFactory)
 {
     _dispatcher = dispatcher;
 }
Пример #8
0
        private void InitializeKafka(
            bool useMockEventStore                    = false,
            bool useMockPublishedVersionStore         = false,
            bool useMockDomainEventPublisher          = false,
            bool useMockApplicationMessagePublisher   = false,
            bool useMockPublishableExceptionPublisher = false)
        {
            var brokerAddresses = Root["Kafka:BrokerAddresses"];

            var assemblies = new[]
            {
                Assembly.GetExecutingAssembly()
            };

            _enodeConfiguration = ECommonConfiguration
                                  .Create()
                                  .UseAutofac()
                                  .RegisterCommonComponents()
                                  .UseLog4Net()
                                  .UseJsonNet()
                                  .RegisterUnhandledExceptionHandler()
                                  .CreateENode()
                                  .RegisterENodeComponents()
                                  .UseEventStore(useMockEventStore)
                                  .UsePublishedVersionStore(useMockPublishedVersionStore)
                                  .UseAggregateSnapshot(useMockPublishedVersionStore)
                                  .RegisterBusinessComponents(assemblies)
                                  .InitializeKafka(GetIPEndPointFromAddresses(brokerAddresses))
                                  .UseKafka(useMockDomainEventPublisher, useMockApplicationMessagePublisher, useMockPublishableExceptionPublisher)
                                  .BuildContainer();

            var eventStoreConnectionString = Root["ENode:EventStoreConnectionString"];
            var eventStoreDatabase         = Root["ENode:EventStoreDatabaseName"];

            if (!useMockEventStore)
            {
                _enodeConfiguration.InitializeMongoDbEventStore(new MongoDbConfiguration()
                {
                    ConnectionString = eventStoreConnectionString,
                    DatabaseName     = eventStoreDatabase
                });
            }
            if (!useMockPublishedVersionStore)
            {
                _enodeConfiguration.InitializeMongoDbPublishedVersionStore(new MongoDbConfiguration()
                {
                    ConnectionString = eventStoreConnectionString,
                    DatabaseName     = eventStoreDatabase
                });

                _enodeConfiguration.InitializeMongoDbAggregateSnapshotter(new MongoDbConfiguration()
                {
                    ConnectionString = eventStoreConnectionString,
                    DatabaseName     = eventStoreDatabase
                });
            }

            var strBrokerAddresses = Root["Kafka:BrokerAddresses"];
            var ipEndPoints        = new List <IPEndPoint>();
            var addressList        = strBrokerAddresses.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var address in addressList)
            {
                var array    = address.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries);
                var endpoint = SocketUtils.GetIPEndPointFromHostName(array[0], int.Parse(array[1]));
                ipEndPoints.Add(endpoint);
            }
            _enodeConfiguration
            .InitializeBusinessAssemblies(assemblies)
            .StartKafka()
            .Start();

            _commandService                = ObjectContainer.Resolve <ICommandService>();
            _memoryCache                   = ObjectContainer.Resolve <IMemoryCache>();
            _eventStore                    = ObjectContainer.Resolve <IEventStore>();
            _publishedVersionStore         = ObjectContainer.Resolve <IPublishedVersionStore>();
            _domainEventPublisher          = ObjectContainer.Resolve <IMessagePublisher <DomainEventStreamMessage> >();
            _applicationMessagePublisher   = ObjectContainer.Resolve <IMessagePublisher <IApplicationMessage> >();
            _publishableExceptionPublisher = ObjectContainer.Resolve <IMessagePublisher <IPublishableException> >();
            _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(BaseTest));
            _logger.Info("----ENode initialized.");
        }
Пример #9
0
 public AbstractSequenceProcessingMessageHandler(IPublishedVersionStore publishedVersionStore, IOHelper ioHelper, ILoggerFactory loggerFactory)
 {
     _publishedVersionStore = publishedVersionStore;
     _ioHelper = ioHelper;
     _logger   = loggerFactory.Create(GetType().FullName);
 }