Esempio n. 1
0
        public RewriterResults rewrite(Gadget gadget, MutableContent content)
        {
            if (gadget.getSpec().getModulePrefs().getFeatures().ContainsKey("caja") ||
                "1".Equals(gadget.getContext().getParameter("caja")))
            {
                URI          retrievedUri = gadget.getContext().getUrl();
                UriCallback2 cb           = new UriCallback2(retrievedUri);

                MessageQueue          mq    = new SimpleMessageQueue();
                DefaultGadgetRewriter rw    = new DefaultGadgetRewriter(mq);
                CharProducer          input = CharProducer.Factory.create(
                    new java.io.StringReader(content.getContent()),
                    FilePosition.instance(new InputSource(new java.net.URI(retrievedUri.ToString())), 2, 1, 1));
                java.lang.StringBuilder output = new java.lang.StringBuilder();

                try
                {
                    rw.rewriteContent(new java.net.URI(retrievedUri.ToString()), input, cb, output);
                }
                catch (GadgetRewriteException e)
                {
                    throwCajolingException(e, mq);
                    return(RewriterResults.notCacheable());
                }
                catch (IOException e)
                {
                    throwCajolingException(e, mq);
                    return(RewriterResults.notCacheable());
                }
                content.setContent(tameCajaClientApi() + output.ToString());
            }
            return(null);
        }
Esempio n. 2
0
 public void publishing_of_message_without_handlers_should_not_throw()
 {
     using (var bus = new SimpleMessageQueue(10))
     {
         Assert.DoesNotThrow(() => bus.Publish(new UnHandledMessage()));
     }
 }
        public MessageController(IConfiguration configuration)
        {
            var section = configuration.GetSection("Redis");

            _configuration  = section.Get <RedisConfiguration>();
            _redisPublisher = new SimpleMessageQueue(_configuration.Host);
        }
Esempio n. 4
0
 public void messages_should_have_only_one_handler()
 {
     using (var bus = new SimpleMessageQueue(10))
     {
         bus.RegisterAssemblyOf <SampleMessageHandler>();
         var ex = Assert.Throws <TooManyMessageHandlersException>(() => bus.Send(new CommandWithMultipleHandlers()));
     }
 }
Esempio n. 5
0
 public void sending_a_message_without_handler_should_trow()
 {
     using (var bus = new SimpleMessageQueue(10))
     {
         var ex = Assert.Throws <Exception>(() => bus.Send(new UnHandledMessage()));
         Assert.IsTrue(ex.Message.StartsWith("Missing handler for message"));
     }
 }
        public void Setup()
        {
            if (SimpleMessageQueue.Exists(QueuePath))
            {
                SimpleMessageQueue.Delete(QueuePath);
            }

            SimpleMessageQueue.Create(QueuePath, new BinaryFormatter());
        }
        public void Enqueue_Adding10000MessagesSequencial_WorksFine()
        {
            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {

            for (var i = 0; i < 10000; i++)
              queue.Enqueue(1);

            Assert.AreEqual(10000, queue.Count);
              }
        }
        public void Receive_WhenAddingTwoMessagesAndThenReadOne_QueueCountIsOne()
        {
            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
                queue.Enqueue(1);
                queue.Enqueue(2);

                queue.Receive(new CancellationTokenSource().Token);

                Assert.AreEqual(1, queue.Count);
            }
        }
Esempio n. 9
0
        private void StartMessageQueue()
        {
            _simpleMessageQueue = new SimpleMessageQueue(10);
            var assemblies =
                AppDomain.CurrentDomain.GetAssemblies().Where(x => x.GetName().Name.StartsWith("Bookings")).ToArray();

            foreach (var assembly in assemblies)
            {
                _simpleMessageQueue.RegisterAssembly(assembly);
            }
        }
        public void Receive_WhenHavingTransactionAndOneItemAreAddedToQueue_FileIsNotRemovedFromFileSystem()
        {
            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
                using (var transaction = queue.BeginTransaction()) {
                    queue.Enqueue(1);
                    var message = queue.Receive(new CancellationTokenSource().Token, transaction);

                    Assert.IsTrue(new FileInfo(Path.Combine(QueuePath, "data", message.MessageId.ToString())).Exists);
                }
            }
        }
        public void Enqueue_Adding10000MessagesSequencial_WorksFine()
        {
            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
                for (var i = 0; i < 10000; i++)
                {
                    queue.Enqueue(1);
                }

                Assert.AreEqual(10000, queue.Count);
            }
        }
        public void Enqueue_WhenCreatingTwoInstancesAndAddingOneToEachOne_QueueCountIsTwo()
        {
            using (var queue1 = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
                using (var queue2 = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
                    queue1.Enqueue(1);
                    queue2.Enqueue(2);

                    Assert.AreEqual(2, queue1.Count);
                    Assert.AreEqual(2, queue2.Count);
                }
            }
        }
        public void Dequeue_WhenAddingStringToQueue_WhenDequingSameStringIsReturned()
        {
            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
                queue.Enqueue("Niclas");

                queue.Dispose();
            }

            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
                Assert.AreEqual("Niclas", queue.Receive(new CancellationTokenSource().Token).Payload);
            }
        }
        public void Receive_WhenAddingTwoMessagesAndThenReadOne_QueueCountIsOne()
        {
            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {

            queue.Enqueue(1);
            queue.Enqueue(2);

            queue.Receive(new CancellationTokenSource().Token);

            Assert.AreEqual(1, queue.Count);
              }
        }
        public void Receive_WhenHavingTransactionAndOneItemAreAddedToQueue_FileAreReaddedToQueueWhenRollback()
        {
            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
                using (var transaction = queue.BeginTransaction()) {
                    queue.Enqueue(1);
                    var message = queue.Receive(new CancellationTokenSource().Token, transaction);

                    Assert.IsTrue(new FileInfo(Path.Combine(QueuePath, "data", message.MessageId.ToString())).Exists);
                }

                Assert.AreEqual(1, queue.Count);
            }
        }
        public void Dequeue_WhenAddingStringToQueue_WhenDequingSameStringIsReturned()
        {
            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {

            queue.Enqueue("Niclas");

            queue.Dispose();
              }

              using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
            Assert.AreEqual("Niclas", queue.Receive(new CancellationTokenSource().Token).Payload);
              }
        }
        public void Recover_WhenAddingTwoMessagesAndDisposesQueue_NewQueueHasTwoMessages()
        {
            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
                queue.Enqueue(1);
                queue.Enqueue(2);

                queue.Dispose();
            }

            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
                Assert.AreEqual(2, queue.Count);
            }
        }
        public void Enqueue_WhenCreatingTwoInstancesAndAddingOneToEachOne_QueueCountIsTwo()
        {
            using (var queue1 = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
            using (var queue2 = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {

              queue1.Enqueue(1);
              queue2.Enqueue(2);

              Assert.AreEqual(2, queue1.Count);
              Assert.AreEqual(2, queue2.Count);
            }
              }
        }
        public void Enqueue_Adding10000MessagesAsyncroniusly_WorksFine()
        {
            Parallel.For(0, 10, x => {
            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {

              for (var i = 0; i < 1000; i++)
            queue.Enqueue(1);
            }
              });

              using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
            Assert.AreEqual(10000, queue.Count);
              }
        }
        public void Enqueue_Adding10000MessagesAsyncroniusly_WorksFine()
        {
            Parallel.For(0, 10, x => {
                using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
                    for (var i = 0; i < 1000; i++)
                    {
                        queue.Enqueue(1);
                    }
                }
            });

            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
                Assert.AreEqual(10000, queue.Count);
            }
        }
Esempio n. 21
0
        public void all_messages_should_have_been_handled_after_queue_shutdown()
        {
            SampleMessageHandler.Counter = 0;
            using (var bus = new SimpleMessageQueue(200))
            {
                SampleMessageHandler.ApplicationBus = bus;
                bus.RegisterAssemblyOf <SampleMessageHandler>();

                bus.Send(new SampleMessage("Message 1"));
                bus.Send(new SampleMessage("Message 2"));
                bus.Send(new SampleMessage("Message 3"));
                bus.Send(new SampleMessage("Message 4"));
            }

            // 4*2 (parent + child) + 3 * 2 (retries for Chaos Monkey generated failures)
            Assert.AreEqual(8 + 6, SampleMessageHandler.Counter);
        }
        public void Recover_WhenAddingTwoMessagesAndDisposesQueue_NewQueueHasTwoMessages()
        {
            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {

            queue.Enqueue(1);
            queue.Enqueue(2);

            queue.Dispose();
              }

              using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
            Assert.AreEqual(2, queue.Count);
              }
        }
        public void Receive_WhenHavingTransactionAndOneItemAreAddedToQueue_FileAreReaddedToQueueWhenRollback()
        {
            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
            using (var transaction = queue.BeginTransaction()) {
              queue.Enqueue(1);
              var message = queue.Receive(new CancellationTokenSource().Token, transaction);

              Assert.IsTrue(new FileInfo(Path.Combine(QueuePath, "data", message.MessageId.ToString())).Exists);
            }

            Assert.AreEqual(1, queue.Count);
              }
        }
Esempio n. 24
0
        private void StartMessageQueue()
        {
            _simpleMessageQueue = new SimpleMessageQueue(10);
            var assemblies =
                AppDomain.CurrentDomain.GetAssemblies().Where(x => x.GetName().Name.StartsWith("Bookings")).ToArray();

            foreach (var assembly in assemblies)
            {
                _simpleMessageQueue.RegisterAssembly(assembly);
            }
        }
Esempio n. 25
0
        public RewriterResults rewrite(Gadget gadget, MutableContent content)
        {
            if (gadget.getSpec().getModulePrefs().getFeatures().ContainsKey("caja") ||
                "1".Equals(gadget.getContext().getParameter("caja"))) 
            {
                URI retrievedUri = gadget.getContext().getUrl();
                UriCallback2 cb = new UriCallback2(retrievedUri);

                MessageQueue mq = new SimpleMessageQueue();
                DefaultGadgetRewriter rw = new DefaultGadgetRewriter(mq);
                CharProducer input = CharProducer.Factory.create(
                    new java.io.StringReader(content.getContent()),
                    FilePosition.instance(new InputSource(new java.net.URI(retrievedUri.ToString())), 2, 1, 1));
                java.lang.StringBuilder output = new java.lang.StringBuilder();

                try 
                {
                    rw.rewriteContent(new java.net.URI(retrievedUri.ToString()), input, cb, output);
                }
                catch (GadgetRewriteException e)
                {
                    throwCajolingException(e, mq);
                    return RewriterResults.notCacheable();
                }
                catch (IOException e) 
                {
                    throwCajolingException(e, mq);
                    return RewriterResults.notCacheable();
                }
                content.setContent(tameCajaClientApi() + output.ToString());

            }
            return null;
        }
        public void Receive_WhenHavingTransactionAndOneItemAreAddedToQueue_FileIsRemovedFromFileSystemWhenCommited()
        {
            using (var queue = new SimpleMessageQueue(new DirectoryInfo(QueuePath))) {
            using (var transaction = queue.BeginTransaction()) {
              queue.Enqueue(1);
              var message = queue.Receive(new CancellationTokenSource().Token, transaction);

              transaction.Commit();
              Assert.IsFalse(new FileInfo(Path.Combine(QueuePath, "data", message.MessageId.ToString())).Exists);
            }
              }
        }