Пример #1
0
        public async Task send_message_via_forwarding()
        {
            var tracker = new MessageTracker();
            var channel = "tcp://localhost:2345/incoming".ToUri();

            using (var runtime = JasperRuntime.For(_ =>
            {
                _.Handlers.DisableConventionalDiscovery(true);
                _.Handlers.IncludeType <NewMessageHandler>();

                _.Services.AddSingleton(tracker);


                _.Publish.Message <OriginalMessage>().To(channel);
                _.Transports.ListenForMessagesFrom(channel);
            }))
            {
                var waiter = tracker.WaitFor <NewMessage>();

                await runtime.Bus.Send(new OriginalMessage { FirstName = "James", LastName = "Worthy" }, e =>
                {
                    e.Destination = channel;
                    e.ContentType = typeof(OriginalMessage).ToContentType("json");
                });

                waiter.Wait(5.Seconds());

                waiter.Result.Message.As <NewMessage>().FullName.ShouldBe("James Worthy");
            }
        }
Пример #2
0
        public outbox_usage()
        {
            theSender   = JasperRuntime.For <ItemSender>();
            theReceiver = JasperRuntime.For <ItemReceiver>();
            theTracker  = theReceiver.Get <MessageTracker>();

            theSender.RebuildMessageStorage();
            theReceiver.RebuildMessageStorage();

            thePersistor = theReceiver.Get <SqlServerEnvelopePersistor>();

            using (var conn = new SqlConnection(ConnectionSource.ConnectionString))
            {
                conn.Open();

                conn.CreateCommand(@"
IF OBJECT_ID('receiver.item_created', 'U') IS NOT NULL
  drop table receiver.item_created;

").ExecuteNonQuery();

                conn.CreateCommand(@"
create table receiver.item_created
(
	id uniqueidentifier not null
		primary key,
	name varchar(100) not null
);

").ExecuteNonQuery();
            }
        }
Пример #3
0
        public async Task enqueue_locally_with_designated_worker_queue()
        {
            var registry = new JasperRegistry();

            registry.Handlers.DisableConventionalDiscovery();

            registry.Services.Scan(x =>
            {
                x.TheCallingAssembly();
                x.WithDefaultConventions();
            });
            registry.Handlers.IncludeType <MessageConsumer>();

            registry.Handlers.Worker("foo").MaximumParallelization(3);

            var tracker = new MessageTracker();

            registry.Services.AddSingleton(tracker);

            using (var runtime = JasperHost.For(registry))
            {
                var waiter  = tracker.WaitFor <Message1>();
                var message = new Message1
                {
                    Id = Guid.NewGuid()
                };

                await runtime.Get <IMessageContext>().Enqueue(message, "foo");

                var received = await waiter;

                received.Message.As <Message1>().Id.ShouldBe(message.Id);
            }
        }
Пример #4
0
        public async Task enqueue_locally_lightweight()
        {
            var registry = new JasperRegistry();


            registry.Handlers.IncludeType <RecordCallHandler>();
            registry.Services.ForSingletonOf <IFakeStore>().Use <FakeStore>();

            var tracker = new MessageTracker();

            registry.Services.AddSingleton(tracker);

            using (var runtime = JasperHost.For(registry))
            {
                var waiter  = tracker.WaitFor <Message1>();
                var message = new Message1
                {
                    Id = Guid.NewGuid()
                };

                await runtime.Get <IMessageContext>().EnqueueLightweight(message);

                waiter.Wait(5.Seconds());
                var received = waiter.Result;

                received.Message.As <Message1>().Id.ShouldBe(message.Id);
            }
        }
Пример #5
0
        public SendingContext()
        {
            theTracker = new MessageTracker();
            receiverRegistry.Handlers
            .DisableConventionalDiscovery()
            .IncludeType <MessageConsumer>();

            receiverRegistry.Services.For <MessageTracker>().Use(theTracker);
        }
Пример #6
0
        public void Tracking()
        {
            var tracker = new MessageTracker();
            var now     = DateTime.Now;

            Assert.IsFalse(tracker.RecentlySeen("a", now));
            Assert.IsTrue(tracker.RecentlySeen("a", now));
            Assert.IsFalse(tracker.RecentlySeen("a", now + tracker.Recent));
        }
Пример #7
0
        public OutboxSender(MessageTracker tracker)
        {
            Handlers.DisableConventionalDiscovery().IncludeType <CascadeReceiver>();
            Services.AddSingleton(tracker);
            Publish.Message <TriggerMessage>().To("durable://localhost:2337");
            Transports.DurableListenerAt(2338);

            Settings.PersistMessagesWithSqlServer(ConnectionSource.ConnectionString, "outbox_sender");
        }
Пример #8
0
        public sending_messages_without_sharing_types()
        {
            theTracker = new MessageTracker();

            greenApp = JasperRuntime.For <GreenApp>();
            blueApp  = JasperRuntime.For(new BlueApp(theTracker));


            theTracker.ShouldBeTheSameAs(blueApp.Get <MessageTracker>());
        }
Пример #9
0
        public void setup()
        {
            //AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

            if (!isserverconok)
            {
                server = new TradeLink.Common.TLServer_WM();
                con    = new IQFeedHelper(server);
                con.VerboseDebugging = verbosesetting;
                con.SendDebug       += new DebugDelegate(g.d);
                // get login information
                var data = Util.getfile(loginfile, g.d);
                Assert.IsFalse(string.IsNullOrWhiteSpace(data), "no login info");
                var li = data.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                Assert.AreEqual(3, li.Length, "missing login info");
                // attempt to startup connection
                con.Start(li[userr], li[pwr], li[prodr], Util.TLBuild());
                // wait a moment
                Util.sleep(4000);
                Assert.IsTrue(isserverconok, "server connection failed");
            }

            if (isserverconok && !isclientconok)
            {
                var c = new TLClient_WM("tempiqclient", false);
                c.VerboseDebugging = verbosesetting;
                c.SendDebugEvent  += new DebugDelegate(g.d);

                if (c.ProvidersAvailable[0] != Providers.IQFeed)
                {
                    throw new Exception("unable to find test server");
                }
                c.Mode(0, false);
                client = c;


                client.gotUnknownMessage += new MessageDelegate(client_gotUnknownMessage);

                // verify
                Assert.IsTrue(isclientconok, "client connection failed");
            }
            // reset everything
            mt = new MessageTracker();
            mt.VerboseDebugging = verbosesetting;
            blt           = new BarListTracker();
            mt.BLT        = blt;
            mt.SendDebug += new DebugDelegate(g.d);
            mt.GotNewBar += new SymBarIntervalDelegate(mt_GotNewBar);
            recvbarcount  = 0;
            msgok         = true;
            g.d("iqfeed started.");
            // wait a moment
            Util.sleep(1000);
        }
Пример #10
0
        public static async Task Handle(
            ItemCreated created,
            SqlConnection conn,      // the connection for the container scope
            SqlTransaction tx,       // the current transaction
            MessageTracker tracker,
            Envelope envelope)
        {
            await conn.CreateCommand(tx, "insert into receiver.item_created (id, name) values (@id, @name)")
            .With("id", created.Id)
            .With("name", created.Name)
            .ExecuteNonQueryAsync();

            tracker.Record(created, envelope);
        }
        public OutboxSender(MessageTracker tracker)
        {
            Handlers.DisableConventionalDiscovery().IncludeType <CascadeReceiver>();
            Services.AddSingleton(tracker);
            Publish.Message <TriggerMessage>().To("durable://localhost:2337");
            Transports.DurableListenerAt(2338);

            Settings.ConfigureMarten(marten =>
            {
                marten.Connection(ConnectionSource.ConnectionString);
                marten.DatabaseSchemaName = "outbox_sender";
            });

            Include <MartenBackedPersistence>();
        }
Пример #12
0
        public outbox_usage()
        {
            theSender   = JasperRuntime.For <ItemSender>();
            theReceiver = JasperRuntime.For <ItemReceiver>();
            theTracker  = theReceiver.Get <MessageTracker>();

            var senderStore = theSender.Get <IDocumentStore>();

            senderStore.Advanced.Clean.CompletelyRemoveAll();
            senderStore.Tenancy.Default.EnsureStorageExists(typeof(Envelope));

            var receiverStore = theReceiver.Get <IDocumentStore>();

            receiverStore.Advanced.Clean.CompletelyRemoveAll();
            receiverStore.Tenancy.Default.EnsureStorageExists(typeof(Envelope));
        }
Пример #13
0
        void Response_SendMessage(MessageTypes type, long source, long dest, long id, string data, ref string response)
        {
            switch (type)
            {
            case MessageTypes.DOMREQUEST:

                int      d = 0;
                string[] r = MessageTracker.ParseRequest(data);
                if (r.Length > 1)
                {
                    if (int.TryParse(MessageTracker.RequestParam(data, 1), out d))
                    {
                        _depth = d;
                    }
                }
                break;
            }
        }
Пример #14
0
        public async Task send_via_the_alias_and_messages_actually_get_there_2()
        {
            var tracker = new MessageTracker();

            await with(_ =>
            {
                _.Services.AddSingleton(tracker);
                _.Services.For <IUriLookup>().Use <FakeUriLookup>();
                _.Transports.ListenForMessagesFrom("fake://one");
            });

            var waiter = tracker.WaitFor <Message1>();

            await Bus.Send("fake://one".ToUri(), new Message1());

            var envelope = await waiter;

            envelope.Destination.ShouldBe("loopback://one".ToUri());
        }
Пример #15
0
 // GET: api/Bot/5/userInput
 public string Get(string appId, string userInput)
 {
     try
     {
         if (string.IsNullOrEmpty(appId))
         {
             return("Sorry Bot cannot identify user.");
         }
         if (string.IsNullOrEmpty(userInput))
         {
             return("Please input some text for Bot to read.");
         }
         string LastMsg  = MessageTracker.GetLastMessage(appId);
         string response = MessageResponse.Response(LastMsg, userInput).Trim();
         MessageTracker.WriteLastMessaage(appId, response);
         return(response);
     }
     catch (Exception ex) { return(ex.Message); } //return "Something went wrong while communicating with Bot!"; }
 }
Пример #16
0
        public async Task enqueue_locally_with_designated_worker_queue()
        {
            var registry = new JasperRegistry();

            registry.Handlers.DisableConventionalDiscovery(false);

            registry.Services.Scan(x =>
            {
                x.TheCallingAssembly();
                x.WithDefaultConventions();
            });
            registry.Handlers.IncludeType <RecordCallHandler>();
            registry.Services.ForSingletonOf <IFakeStore>().Use <FakeStore>();

            registry.Handlers.Worker("foo").MaximumParallelization(3);

            var tracker = new MessageTracker();

            registry.Services.AddSingleton(tracker);

            var runtime = await JasperRuntime.ForAsync(registry);

            try
            {
                var waiter  = tracker.WaitFor <Message1>();
                var message = new Message1
                {
                    Id = Guid.NewGuid()
                };

                await runtime.Get <IMessageContext>().Enqueue(message, "foo");

                var received = await waiter;

                received.Message.As <Message1>().Id.ShouldBe(message.Id);
            }
            finally
            {
                await runtime.Shutdown();
            }
        }
Пример #17
0
 public SingletonArgMethod(MessageTracker tracker)
 {
 }
Пример #18
0
        public Response Handle(Request request, Envelope envelope, MessageTracker tracker)
        {
            tracker.Record(request, envelope);

            return(new Response());
        }
Пример #19
0
 public static void Handle(ItemCreated created, IDocumentSession session, MessageTracker tracker,
                           Envelope envelope)
 {
     session.Store(created);
     tracker.Record(created, envelope);
 }
Пример #20
0
 public MessageConsumer(MessageTracker tracker)
 {
     _tracker = tracker;
 }
Пример #21
0
 public Service(MessageTracker tracker)
 {
 }
Пример #22
0
 public sending_messages_without_sharing_types()
 {
     theTracker = new MessageTracker();
 }
Пример #23
0
 public static void Consume(Envelope envelope, BlueMessage message, MessageTracker tracker)
 {
     tracker.Record(message, envelope);
 }
Пример #24
0
 public RecordingHandler(MessageTracker tracker)
 {
     _tracker = tracker;
 }
Пример #25
0
 public MultipleArgMethod(MessageTracker tracker, IWidget widget)
 {
 }
Пример #26
0
 public void Handle(ColorChosen message, ColorHistory history, Envelope envelope, MessageTracker tracker)
 {
     history.Name     = message.Name;
     history.Envelope = envelope;
     tracker.Record(message, envelope);
 }
Пример #27
0
 public void Handle(NewMessage message, MessageTracker tracker, Envelope envelope)
 {
     tracker.Record(message, envelope);
 }
        public void Handle(ReceivedMessage message, Envelope envelope, ReceivingSettings settings, MessageTracker tracker)
        {
            if (settings.Latched)
            {
                throw new DivideByZeroException();
            }

            tracker.Record(message, envelope);
        }