Esempio n. 1
0
        public void Test()
        {
            var dev = AzureStorage.CreateConfigurationForDev();

            WipeAzureAccount.Fast(s => s.StartsWith("test-"), dev);

            var events = new Subject <ISystemEvent>();
            var b      = new CqrsEngineBuilder();

            b.Azure(c => c.AddAzureProcess(dev, "test-publish"));
            b.Advanced.RegisterObserver(events);
            var engine = b.Build();
            var source = new CancellationTokenSource();

            engine.Start(source.Token);



            var builder = new CqrsClientBuilder();

            builder.Azure(c => c.AddAzureSender(dev, "test-publish"));
            var client = builder.Build();


            client.Sender.SendOne(new Message());

            using (engine)
                using (events.OfType <EnvelopeAcked>().Subscribe(e => source.Cancel()))
                {
                    source.Token.WaitHandle.WaitOne(5000);
                    source.Cancel();
                }
        }
        protected override void EngineConfig(CqrsEngineBuilder b)
        {
            var account = AzureStorage.CreateConfigurationForDev();
            WipeAzureAccount.Fast(s => s.StartsWith("test-"), account);

            b.Azure(m =>
                {
                    m.AddAzureProcess(account, new[] {"test-incoming"}, c => c.QueueVisibility(1));
                    m.AddAzureSender(account, "test-incoming", x => x.IdGeneratorForTests());
                });
            b.Storage(m => m.AtomicIsInAzure(account, DefaultWithCustomConfig));
        }
Esempio n. 3
0
        protected override void EngineConfig(CqrsEngineBuilder b)
        {
            var account = AzureStorage.CreateConfigurationForDev();

            WipeAzureAccount.Fast(s => s.StartsWith("test-"), account);

            b.Azure(m =>
            {
                m.AddAzureProcess(account, new[] { "test-incoming" }, c => c.QueueVisibility(1));
                m.AddAzureSender(account, "test-incoming", x => x.IdGeneratorForTests());
            });
            b.Storage(m => m.AtomicIsInAzure(account, DefaultWithCustomConfig));
        }
        protected override CqrsEngineHost BuildHost()
        {
            var builder = new CqrsEngineBuilder();

            //NOTE: Core Lokad CQRS Initialization
            builder.UseProtoBufSerialization();

            builder.Domain(config =>
            {
                config.InAssemblyOf<CreateMessage>();
                config.InAssemblyOf<CreateMessageHandler>();
                config.ContextFactory(MyMessageContext.Factory);
            });

            var storageConfig = CreateCloudStorageConfig();

            builder.Azure(config =>
            {

                config.AddAzureProcess(storageConfig, Queues.MESSAGES);
                config.AddAzureSender(storageConfig, Queues.MESSAGES);
            });

            builder.Storage(config => config.AtomicIsInAzure(storageConfig, s =>
            {
                s.WithAssemblyOf<MessageView>();
                s.CustomStaticSerializer(new AtomicStorageSerializerWithProtoBuf());
            }));

            //NOTE: Event Store Initialization
            builder.ConfigureJonathanOliverEventStore(config =>
            {
                var connectionString = AzureSettingsProvider.GetString("EventStoreConnectionString");

                config.ConnectionString(connectionString);
                config.Hooks(p => p.Add<MyNullPipelineHook>());
                config.Snapshots(s =>
                {
                    //snapshotting isn't implemented correctly right now.
                    s.Disable();
                    s.CheckEvery(TimeSpan.FromSeconds(30));
                    //set this to something reasonable like 250.
                    //It's so low here to demonstrate background "out-of-band" snapshotting.
                    s.MaxThreshold(2);
                });
            });

            return builder.Build();
        }
Esempio n. 5
0
        protected override void CurrentConfig(CqrsEngineBuilder b)
        {
            var dev = AzureStorage.CreateConfigurationForDev();

            WipeAzureAccount.Fast(s => s.StartsWith("test-"), dev);
            b.Azure(m =>
            {
                m.AddAzureProcess(dev, new[] { "test-incoming" }, c =>
                {
                    c.QueueVisibility(1);
                    c.DispatchAsCommandBatch();
                });
                m.AddAzureSender(dev, "test-incoming", x => x.IdGeneratorForTests());
            });
        }
Esempio n. 6
0
        protected override CqrsEngineHost BuildHost()
        {
            var builder = new CqrsEngineBuilder();

            //NOTE: Core Lokad CQRS Initialization
            builder.UseProtoBufSerialization();

            builder.Domain(config =>
            {
                config.InAssemblyOf <CreateMessage>();
                config.InAssemblyOf <CreateMessageHandler>();
                config.ContextFactory(MyMessageContext.Factory);
            });

            var storageConfig = CreateCloudStorageConfig();

            builder.Azure(config =>
            {
                config.AddAzureProcess(storageConfig, Queues.MESSAGES);
                config.AddAzureSender(storageConfig, Queues.MESSAGES);
            });

            builder.Storage(config => config.AtomicIsInAzure(storageConfig, s =>
            {
                s.WithAssemblyOf <MessageView>();
                s.CustomStaticSerializer(new AtomicStorageSerializerWithProtoBuf());
            }));

            //NOTE: Event Store Initialization
            builder.ConfigureJonathanOliverEventStore(config =>
            {
                var connectionString = AzureSettingsProvider.GetString("EventStoreConnectionString");

                config.ConnectionString(connectionString);
                config.Hooks(p => p.Add <MyNullPipelineHook>());
                config.Snapshots(s =>
                {
                    //snapshotting isn't implemented correctly right now.
                    s.Disable();
                    s.CheckEvery(TimeSpan.FromSeconds(30));
                    //set this to something reasonable like 250.
                    //It's so low here to demonstrate background "out-of-band" snapshotting.
                    s.MaxThreshold(2);
                });
            });

            return(builder.Build());
        }
Esempio n. 7
0
        // ReSharper disable InconsistentNaming


        static CqrsEngineHost BuildHost()
        {
            var builder = new CqrsEngineBuilder();

            builder.Azure(x => x.AddAzureProcess(AzureStorage.CreateConfigurationForDev(), "process-vip"));
            builder.Memory(x =>
            {
                x.AddMemoryProcess("process-all");
                x.AddMemoryRouter("inbox", e =>
                {
                    var isVip = e.Items.Any(i => i.MappedType == typeof(VipMessage));
                    return(isVip ? "azure-dev:process-vip" : "memory:process-all");
                });
                x.AddMemorySender("inbox", cm => cm.IdGeneratorForTests());
            });


            return(builder.Build());
        }