/// <summary>
        /// Create new observer
        /// </summary>
        public override ITransportEndpointObserver CreateObserver(TransportEndpointAddress transportEndpointAddress)
        {
            if (!_queues.ContainsKey(transportEndpointAddress.GetFriendlyName()))
                throw new Exception(String.Format("There is no queue with name {0}.", transportEndpointAddress.GetFriendlyName()));

            return (ITransportEndpointObserver) _queues[transportEndpointAddress.GetFriendlyName()];
        }
Exemplo n.º 2
0
        public static void CreateQueue(Action <ITransportEndpoint> action)
        {
            var name = new TransportEndpointAddress(Guid.NewGuid().ToString());

            var managers = new ITransport[]
            {
                new MsmqTransport(),
                new InMemoryTransport(),
                new InMemorySynchronousTransport()
            };

            foreach (var manager in managers)
            {
                try
                {
                    manager.CreateEndpoint(name);
                    var queue = manager.OpenEndpoint(name);
                    action(queue);
                }
                finally
                {
                    manager.DeleteEndpoint(name);
                }
            }
        }
 public void NotExistCheck()
 {
     var name = new TransportEndpointAddress(Guid.NewGuid().ToString());
     var manager = new MsmqTransport();
     var exists = manager.ExistsEndpoint(name);
     Assert.AreEqual(exists, false);
 }
Exemplo n.º 4
0
        /// <summary>
        /// Create queue
        /// </summary>
        public void PrepareEndpoint(TransportEndpointAddress transportEndpointAddress)
        {
            var queue = new MessageQueue(transportEndpointAddress.GetFormatName());

            SetupQueue(queue);
            SetPermissions(queue);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Open queue
        /// </summary>
        public ITransportEndpoint OpenEndpoint(TransportEndpointAddress transportEndpointAddress)
        {
            var queue = new MessageQueue(transportEndpointAddress.GetFormatName());

            SetupQueue(queue);
            return(new MsmqTransportEndpoint(transportEndpointAddress, queue, this));
        }
        public ITransportEndpoint OpenEndpoint(TransportEndpointAddress transportEndpointAddress)
        {
            if (!_queues.ContainsKey(transportEndpointAddress.GetFriendlyName()))
                throw new Exception(String.Format("There is no queue with name {0}.", transportEndpointAddress.GetFriendlyName()));

            return _queues[transportEndpointAddress.GetFriendlyName()];
        }
Exemplo n.º 7
0
        public static void CreateQueue(Action<ITransportEndpoint> action)
        {
            var name = new TransportEndpointAddress(Guid.NewGuid().ToString());
            
            var managers = new ITransport[]
            {
                new MsmqTransport(),
                new InMemoryTransport(),
                new InMemorySynchronousTransport()
            };

            foreach (var manager in managers)
            {
                try
                {
                    manager.CreateEndpoint(name);
                    var queue = manager.OpenEndpoint(name);
                    action(queue);
                }
                finally
                {
                    manager.DeleteEndpoint(name);
                }
            }
        }
Exemplo n.º 8
0
        public void NotExistCheck()
        {
            var name    = new TransportEndpointAddress(Guid.NewGuid().ToString());
            var manager = new MsmqTransport();
            var exists  = manager.ExistsEndpoint(name);

            Assert.AreEqual(exists, false);
        }
Exemplo n.º 9
0
        public ITransportEndpoint OpenEndpoint(TransportEndpointAddress transportEndpointAddress)
        {
            if (!_queues.ContainsKey(transportEndpointAddress.GetFriendlyName()))
            {
                throw new Exception(String.Format("There is no queue with name {0}.", transportEndpointAddress.GetFriendlyName()));
            }

            return(_queues[transportEndpointAddress.GetFriendlyName()]);
        }
Exemplo n.º 10
0
        public ITransportEndpoint OpenEndpoint(TransportEndpointAddress transportEndpointAddress)
        {
            if (!Queues.ContainsKey(transportEndpointAddress.GetFriendlyName()))
            {
                throw new Exception($"There is no queue with name {transportEndpointAddress.GetFriendlyName()}.");
            }

            return(Queues[transportEndpointAddress.GetFriendlyName()]);
        }
        /// <summary>
        /// Create new observer
        /// </summary>
        public override ITransportEndpointObserver CreateObserver(TransportEndpointAddress transportEndpointAddress)
        {
            if (!Queues.ContainsKey(transportEndpointAddress.GetFriendlyName()))
            {
                throw new Exception($"There is no queue with name {transportEndpointAddress.GetFriendlyName()}.");
            }

            return((ITransportEndpointObserver)Queues[transportEndpointAddress.GetFriendlyName()]);
        }
        /// <summary>
        /// Create new observer
        /// </summary>
        public override ITransportEndpointObserver CreateObserver(TransportEndpointAddress transportEndpointAddress)
        {
            if (!_queues.ContainsKey(transportEndpointAddress.GetFriendlyName()))
            {
                throw new Exception(String.Format("There is no queue with name {0}.", transportEndpointAddress.GetFriendlyName()));
            }

            return((ITransportEndpointObserver)_queues[transportEndpointAddress.GetFriendlyName()]);
        }
Exemplo n.º 13
0
        public virtual void CreateEndpoint(TransportEndpointAddress transportEndpointAddress)
        {
            var queue = new InMemoryTransportEndpoint(transportEndpointAddress, this);

            Queues[transportEndpointAddress.GetFriendlyName()] = queue;
        }
Exemplo n.º 14
0
 public bool ExistsEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     return(Queues.ContainsKey(transportEndpointAddress.GetFriendlyName()));
 }
        /// <summary>
        /// Create queue
        /// </summary>
        public override void CreateEndpoint(TransportEndpointAddress transportEndpointAddress)
        {
            var queue = new InMemorySynchronousTransportEndpoint(transportEndpointAddress, this);

            _queues[transportEndpointAddress.GetFriendlyName()] = queue;
        }
Exemplo n.º 16
0
 /// <summary>
 /// Create queue
 /// </summary>
 public void PrepareEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     var queue = new MessageQueue(transportEndpointAddress.GetFormatName());
     SetupQueue(queue);
     SetPermissions(queue);
 }
Exemplo n.º 17
0
 /// <summary>
 /// Delete particular queue
 /// </summary>
 public void DeleteEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     MessageQueue.Delete(transportEndpointAddress.GetFormatName());
 }
Exemplo n.º 18
0
 public ITransportEndpointObserver CreateObserver(TransportEndpointAddress transportEndpointAddress)
 {
     return new SingleThreadTransportEndpointObserver(this, transportEndpointAddress, _threadName);
 }
 public virtual ITransportEndpointObserver CreateObserver(TransportEndpointAddress transportEndpointAddress)
 {
     return new SingleThreadTransportEndpointObserver(this, transportEndpointAddress);
 }
 public void PrepareEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     // nothing to do here...
 }
 public virtual void CreateEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     var queue = new InMemoryTransportEndpoint(transportEndpointAddress, this);
     _queues[transportEndpointAddress.GetFriendlyName()] = queue;
 }
 public void DeleteEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     _queues.Remove(transportEndpointAddress.GetFriendlyName());
 }
Exemplo n.º 23
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:System.Object"/> class.
 /// </summary>
 public MsmqTransportEndpoint(TransportEndpointAddress name, MessageQueue messageQueue, MsmqTransport transport)
 {
     Name          = name;
     _messageQueue = messageQueue;
     _transport    = transport;
 }
 public bool ExistsEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     return _queues.ContainsKey(transportEndpointAddress.GetFriendlyName());
 }
 /// <summary>
 /// Create queue
 /// </summary>
 public override void CreateEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     var queue = new InMemorySynchronousTransportEndpoint(transportEndpointAddress, this);
     _queues[transportEndpointAddress.GetFriendlyName()] = queue;            
 }
Exemplo n.º 26
0
 /// <summary>
 /// Delete particular queue
 /// </summary>
 public void DeleteEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     MessageQueue.Delete(transportEndpointAddress.GetFormatName());
 }
        public void SimpleTest()
        {
            var inputQueueName1 = new TransportEndpointAddress(Guid.NewGuid().ToString());
            var inputQueueName2 = new TransportEndpointAddress(Guid.NewGuid().ToString());

            ServiceBusConfiguration config1 = null;
            ServiceBusConfiguration config2 = null;

            try
            {
                var unity = new UnityContainer();
                var tracker = new Tracker();
                unity.RegisterInstance(tracker);

                var bus1 = ServiceBus.Create(c => c
                    .SetServiceLocator(new UnityServiceLocator(unity))
                    .MsmqTransport()
                    .SetInputQueue(inputQueueName1.GetFriendlyName())
                    .AddEndpoint("Paralect.ServiceBus.Test.Messages", inputQueueName2.GetFriendlyName())
                    .Out(out config1)
                );

                var bus2 = ServiceBus.Create(c => c
                    .SetServiceLocator(new UnityServiceLocator(unity))
                    .MsmqTransport()
                    .SetInputQueue(inputQueueName2.GetFriendlyName())
                    .AddEndpoint("Paralect.ServiceBus.Test.Messages", inputQueueName1.GetFriendlyName())
                    .Dispatcher(d => d
                        .AddHandlers(Assembly.GetExecutingAssembly())
                        .AddInterceptor(typeof(FirstInterceptor))
                        .AddInterceptor(typeof(SecondInterceptor))
                    )
                    .Out(out config2)
                );

                using (bus1)
                using (bus2)
                {
                    bus1.Run();
                    bus2.Run();

                    var msg = new Message1("Hello", 2012);

                    bus1.Send(msg);

                    bus2.Wait();
                    bus1.Wait();

                    Assert.AreEqual(1, tracker.Handlers.Count);
                    Assert.AreEqual(2, tracker.Interceptors.Count);
                    Assert.AreEqual(typeof(Message1), tracker.Handlers[0]);
                    Assert.AreEqual(typeof(FirstInterceptor), tracker.Interceptors[0]);
                    Assert.AreEqual(typeof(SecondInterceptor), tracker.Interceptors[1]);
                }
            }
            catch (Exception ex)
            {
                var z = 45;
                throw;
            }

            finally
            {
                var queueProvider1 = TransportRegistry.GetQueueProvider(inputQueueName1);
                queueProvider1.DeleteEndpoint(config1.InputQueue);
                queueProvider1.DeleteEndpoint(config1.ErrorQueue);

                var queueProvider2 = TransportRegistry.GetQueueProvider(inputQueueName2);
                queueProvider2.DeleteEndpoint(config2.InputQueue);
                queueProvider2.DeleteEndpoint(config2.ErrorQueue);
            }
        }
Exemplo n.º 28
0
 public ITransportEndpointObserver CreateObserver(TransportEndpointAddress transportEndpointAddress)
 {
     return(new SingleThreadTransportEndpointObserver(this, transportEndpointAddress, _threadName));
 }
Exemplo n.º 29
0
        private void TestTwoBus(Action<ServiceBusConfiguration> configModification1, Action<ServiceBusConfiguration> configModification2)
        {
            var inputQueueName1 = new TransportEndpointAddress(Guid.NewGuid().ToString());
            var inputQueueName2 = new TransportEndpointAddress(Guid.NewGuid().ToString());

            ServiceBusConfiguration config1 = null;
            ServiceBusConfiguration config2 = null;

            try
            {
                var tracker = new Tracker();
                var unity = new UnityContainer()
                    .RegisterInstance(tracker);

                var bus1 = ServiceBus.Create(c => c
                    .SetServiceLocator(new UnityServiceLocator(unity))
                    .SetInputQueue(inputQueueName1.GetFriendlyName())
                    .AddEndpoint("Paralect.ServiceBus.Test.Messages", inputQueueName2.GetFriendlyName())
                    .Modify(configModification1)
                    .Out(out config1)
                );

                var bus2 = ServiceBus.Create(c => c
                    .SetServiceLocator(new UnityServiceLocator(unity))
                    .SetInputQueue(inputQueueName2.GetFriendlyName())
                    .AddEndpoint("Paralect.ServiceBus.Test.Messages", inputQueueName1.GetFriendlyName())
                    .Dispatcher(d => d
                        .AddHandlers(Assembly.GetExecutingAssembly())
                    )
                    .Out(out config2)
                    .Modify(configModification2)
                );

                using (bus1)
                using (bus2)
                {
                    bus1.Run();
                    bus2.Run();

                    var msg = new Message1("Hello", 2010);
                    var msg2 = new Message1("Hello2", 2010);

                    bus1.Send(msg);
                    bus2.Send(msg2);

                    bus2.Wait();
                    bus1.Wait();
                }

                Assert.AreEqual(1, tracker.Handlers.Count);
                Assert.AreEqual(typeof(Message1), tracker.Handlers[0]); 
            }
            finally
            {
                var queueProvider1 = TransportRegistry.GetQueueProvider(inputQueueName1);
                queueProvider1.DeleteEndpoint(config1.InputQueue);
                queueProvider1.DeleteEndpoint(config1.ErrorQueue);

                var queueProvider2 = TransportRegistry.GetQueueProvider(inputQueueName2);
                queueProvider2.DeleteEndpoint(config2.InputQueue);
                queueProvider2.DeleteEndpoint(config2.ErrorQueue);
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="T:System.Object"/> class.
 /// </summary>
 public MsmqTransportEndpoint(TransportEndpointAddress name, MessageQueue messageQueue, MsmqTransport transport)
 {
     _name = name;
     _messageQueue = messageQueue;
     _transport = transport;
 }
Exemplo n.º 31
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:System.Object"/> class.
 /// </summary>
 public InMemorySynchronousTransportEndpoint(TransportEndpointAddress name, ITransport transport)
 {
     _name      = name;
     _transport = transport;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="T:System.Object"/> class.
 /// </summary>
 public InMemorySynchronousTransportEndpoint(TransportEndpointAddress name, ITransport transport)
 {
     _name = name;
     _transport = transport;
 }
Exemplo n.º 33
0
 /// <summary>
 /// Create queue
 /// </summary>
 public void CreateEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     var queue = MessageQueue.Create(transportEndpointAddress.GetLocalName(), true); // transactional
     SetupQueue(queue);
 }
Exemplo n.º 34
0
 public void DeleteEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     Queues.Remove(transportEndpointAddress.GetFriendlyName());
 }
Exemplo n.º 35
0
 /// <summary>
 /// Open queue
 /// </summary>
 public ITransportEndpoint OpenEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     var queue = new MessageQueue(transportEndpointAddress.GetFormatName());
     SetupQueue(queue);
     return new MsmqTransportEndpoint(transportEndpointAddress, queue, this);
 }
Exemplo n.º 36
0
 public void PrepareEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     // nothing to do here...
 }
Exemplo n.º 37
0
 /// <summary>
 /// Check existence of queue
 /// </summary>
 public Boolean ExistsEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     return(MessageQueue.Exists(transportEndpointAddress.GetLocalName()));
 }
Exemplo n.º 38
0
 public virtual ITransportEndpointObserver CreateObserver(TransportEndpointAddress transportEndpointAddress)
 {
     return(new SingleThreadTransportEndpointObserver(this, transportEndpointAddress));
 }
Exemplo n.º 39
0
        /// <summary>
        /// Create queue
        /// </summary>
        public void CreateEndpoint(TransportEndpointAddress transportEndpointAddress)
        {
            var queue = MessageQueue.Create(transportEndpointAddress.GetLocalName(), true); // transactional

            SetupQueue(queue);
        }
Exemplo n.º 40
0
        private void TestTwoBus(Action <ServiceBusConfiguration> configModification1, Action <ServiceBusConfiguration> configModification2)
        {
            var inputQueueName1 = new TransportEndpointAddress(Guid.NewGuid().ToString());
            var inputQueueName2 = new TransportEndpointAddress(Guid.NewGuid().ToString());

            ServiceBusConfiguration config1 = null;
            ServiceBusConfiguration config2 = null;

            try
            {
                var tracker = new Tracker();
                var unity   = new UnityContainer()
                              .RegisterInstance(tracker);

                var bus1 = ServiceBus.Create(c => c
                                             .SetServiceLocator(new UnityServiceLocator(unity))
                                             .SetInputQueue(inputQueueName1.GetFriendlyName())
                                             .AddEndpoint("Paralect.ServiceBus.Test.Messages", inputQueueName2.GetFriendlyName())
                                             .Modify(configModification1)
                                             .Out(out config1)
                                             );

                var bus2 = ServiceBus.Create(c => c
                                             .SetServiceLocator(new UnityServiceLocator(unity))
                                             .SetInputQueue(inputQueueName2.GetFriendlyName())
                                             .AddEndpoint("Paralect.ServiceBus.Test.Messages", inputQueueName1.GetFriendlyName())
                                             .Dispatcher(d => d
                                                         .AddHandlers(Assembly.GetExecutingAssembly())
                                                         )
                                             .Out(out config2)
                                             .Modify(configModification2)
                                             );

                using (bus1)
                    using (bus2)
                    {
                        bus1.Run();
                        bus2.Run();

                        var msg  = new Message1("Hello", 2010);
                        var msg2 = new Message1("Hello2", 2010);

                        bus1.Send(msg);
                        bus2.Send(msg2);

                        bus2.Wait();
                        bus1.Wait();
                    }

                Assert.AreEqual(1, tracker.Handlers.Count);
                Assert.AreEqual(typeof(Message1), tracker.Handlers[0]);
            }
            finally
            {
                var queueProvider1 = TransportRegistry.GetQueueProvider(inputQueueName1);
                queueProvider1.DeleteEndpoint(config1.InputQueue);
                queueProvider1.DeleteEndpoint(config1.ErrorQueue);

                var queueProvider2 = TransportRegistry.GetQueueProvider(inputQueueName2);
                queueProvider2.DeleteEndpoint(config2.InputQueue);
                queueProvider2.DeleteEndpoint(config2.ErrorQueue);
            }
        }
Exemplo n.º 41
0
        public void SimpleTest()
        {
            var inputQueueName1 = new TransportEndpointAddress(Guid.NewGuid().ToString());
            var inputQueueName2 = new TransportEndpointAddress(Guid.NewGuid().ToString());

            ServiceBusConfiguration config1 = null;
            ServiceBusConfiguration config2 = null;

            try
            {
                var unity   = new UnityContainer();
                var tracker = new Tracker();
                unity.RegisterInstance(tracker);

                var bus1 = ServiceBus.Create(c => c
                                             .SetServiceLocator(new UnityServiceLocator(unity))
                                             .MsmqTransport()
                                             .SetInputQueue(inputQueueName1.GetFriendlyName())
                                             .AddEndpoint("Paralect.ServiceBus.Test.Messages", inputQueueName2.GetFriendlyName())
                                             .Out(out config1)
                                             );

                var bus2 = ServiceBus.Create(c => c
                                             .SetServiceLocator(new UnityServiceLocator(unity))
                                             .MsmqTransport()
                                             .SetInputQueue(inputQueueName2.GetFriendlyName())
                                             .AddEndpoint("Paralect.ServiceBus.Test.Messages", inputQueueName1.GetFriendlyName())
                                             .Dispatcher(d => d
                                                         .AddHandlers(Assembly.GetExecutingAssembly())
                                                         .AddInterceptor(typeof(FirstInterceptor))
                                                         .AddInterceptor(typeof(SecondInterceptor))
                                                         )
                                             .Out(out config2)
                                             );

                using (bus1)
                    using (bus2)
                    {
                        bus1.Run();
                        bus2.Run();

                        var msg = new Message1("Hello", 2012);

                        bus1.Send(msg);

                        bus2.Wait();
                        bus1.Wait();

                        Assert.AreEqual(1, tracker.Handlers.Count);
                        Assert.AreEqual(2, tracker.Interceptors.Count);
                        Assert.AreEqual(typeof(Message1), tracker.Handlers[0]);
                        Assert.AreEqual(typeof(FirstInterceptor), tracker.Interceptors[0]);
                        Assert.AreEqual(typeof(SecondInterceptor), tracker.Interceptors[1]);
                    }
            }
            catch (Exception ex)
            {
                var z = 45;
                throw;
            }

            finally
            {
                var queueProvider1 = TransportRegistry.GetQueueProvider(inputQueueName1);
                queueProvider1.DeleteEndpoint(config1.InputQueue);
                queueProvider1.DeleteEndpoint(config1.ErrorQueue);

                var queueProvider2 = TransportRegistry.GetQueueProvider(inputQueueName2);
                queueProvider2.DeleteEndpoint(config2.InputQueue);
                queueProvider2.DeleteEndpoint(config2.ErrorQueue);
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="T:System.Object"/> class.
 /// </summary>
 public InMemoryTransportEndpoint(TransportEndpointAddress name, ITransport transport)
 {
     Name      = name;
     Transport = transport;
 }
Exemplo n.º 43
0
 /// <summary>
 /// Check existence of queue
 /// </summary>
 public Boolean ExistsEndpoint(TransportEndpointAddress transportEndpointAddress)
 {
     return MessageQueue.Exists(transportEndpointAddress.GetLocalName());
 }