示例#1
0
        public void Dispose()
        {
            if (!_disposed)
            {
                foreach (ShapeWaitSet waitSet in _shapeWaitSets)
                {
                    waitSet.Dispose();
                }

                _shapeWaitSets.Clear();

                foreach (ShapeDynamic shape in _shapeDynamics)
                {
                    shape.Dispose();
                }

                _shapeDynamics.Clear();

                if (_participant != null)
                {
                    _participant.DeleteContainedEntities();
                    _domainFactory.DeleteParticipant(_participant);
                }

                TransportRegistry.Instance.Release();
                TransportRegistry.Close();
                ParticipantService.Instance.Shutdown();

                _disposed = true;
            }
        }
示例#2
0
        public static void AssemblyCleanup()
        {
            _supportProcess.KillProcess(_infoProcess);
            if (File.Exists(INFOREPO_IOR))
            {
                File.Delete(INFOREPO_IOR);
            }

            TransportRegistry.Instance.Release();
            Assert.IsTrue(TransportRegistry.Instance.Released);
            TransportRegistry.Close();
            ParticipantService.Instance.Shutdown();
            Assert.IsTrue(ParticipantService.Instance.IsShutdown);

            Ace.Fini();
        }
示例#3
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);
            }
        }
示例#4
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);
            }
        }