protected void ConfigureProjectionEngine()
        {
            if (Engine != null)
            {
                Engine.Stop();
            }
            _tracker       = new ConcurrentCheckpointTracker(Database);
            _statusChecker = new ConcurrentCheckpointStatusChecker(Database);

            var tenantId = new TenantId("engine");

            var config = new ProjectionEngineConfig()
            {
                Slots = new[] { "*" },
                EventStoreConnectionString = _eventStoreConnectionString,
                TenantId = tenantId
            };

            _rebuildContext = new RebuildContext(false);
            StorageFactory  = new MongoStorageFactory(Database, _rebuildContext);

            Engine = new ConcurrentProjectionsEngine(
                _tracker,
                BuildProjections().ToArray(),
                new PollingClientWrapper(new CommitEnhancer(_identityConverter), true, _tracker),
                new NullHouseKeeper(),
                _rebuildContext,
                new NullNotifyCommitHandled(),
                config
                );
            Engine.LoggerFactory = Substitute.For <ILoggerFactory>();
            Engine.LoggerFactory.Create(Arg.Any <Type>()).Returns(NullLogger.Instance);
            Engine.StartWithManualPoll();
        }
Esempio n. 2
0
        protected void ConfigureProjectionEngine(Boolean dropCheckpoints = true)
        {
            if (Engine != null)
            {
                Engine.Stop();
            }
            if (dropCheckpoints)
            {
                _checkpoints.Drop();
            }
            _tracker       = new ConcurrentCheckpointTracker(Database);
            _statusChecker = new ConcurrentCheckpointStatusChecker(Database);

            var tenantId = new TenantId("engine");

            var config = new ProjectionEngineConfig()
            {
                Slots = new[] { "*" },
                EventStoreConnectionString = _eventStoreConnectionString,
                TenantId   = tenantId,
                BucketInfo = new List <BucketInfo>()
                {
                    new BucketInfo()
                    {
                        Slots = new[] { "*" }, BufferSize = 10
                    }
                },
                DelayedStartInMilliseconds = 1000,
                ForcedGcSecondsInterval    = 0,
                EngineVersion = "v2",
            };

            RebuildSettings.Init(OnShouldRebuild(), OnShouldUseNitro());

            _rebuildContext = new RebuildContext(RebuildSettings.NitroMode);
            StorageFactory  = new MongoStorageFactory(Database, _rebuildContext);
            Func <IPersistStreams, CommitPollingClient> pollingClientFactory =
                ps => new CommitPollingClient(
                    ps,
                    new CommitEnhancer(_identityConverter),
                    OnGetPollingClientId(),
                    NullLogger.Instance);

            Engine = new ProjectionEngine(
                pollingClientFactory,
                _tracker,
                BuildProjections().ToArray(),
                new NullHouseKeeper(),
                _rebuildContext,
                new NullNotifyCommitHandled(),
                config
                );
            Engine.LoggerFactory = Substitute.For <ILoggerFactory>();
            Engine.LoggerFactory.Create(Arg.Any <Type>()).Returns(NullLogger.Instance);
            OnStartPolling();
        }