Ejemplo n.º 1
0
        public static void RegisterTypes(IUnityContainer container)
        {
            var hierarchy = (Hierarchy)LogManager.GetRepository();
            hierarchy.Root.RemoveAllAppenders();

            hierarchy.Root.Level = Level.Debug;
            hierarchy.RaiseConfigurationChanged(EventArgs.Empty);

            FileAppender fileAppender = new RollingFileAppender();
            fileAppender.AppendToFile = true;
            fileAppender.LockingModel = new FileAppender.MinimalLock();
            fileAppender.File = HttpContext.Current.Server.MapPath("~/TestHarness2.log.txt");
            var patternLayout = new PatternLayout { ConversionPattern = "%d [%2%t] %-5p [%-10c]   %m%n%n" };
            patternLayout.ActivateOptions();

            fileAppender.Layout = patternLayout;
            fileAppender.ActivateOptions();

            BasicConfigurator.Configure(fileAppender);

            var logger = LogManager.GetLogger(typeof(IServiceBus));

            container.RegisterInstance<ILog>(logger, new ContainerControlledLifetimeManager());

            container.RegisterType<IQueueManager, FtpQueueManager>(new ContainerControlledLifetimeManager());

            container.RegisterType<SharedMessageHandler>();

            var messageDictionary = new MessageTypeDictionary
                                    {
                                        { ServiceBus.Messaging.MessageExtensions.MessageTypeSignature<SharedMessage>(), typeof(SharedMessage) },
                                        { ServiceBus.Messaging.MessageExtensions.MessageTypeSignature<NonSharedMessage>(), typeof(NonSharedMessage) },
                                        { ServiceBus.Messaging.MessageExtensions.MessageTypeSignature<SharedEvent>(), typeof(SharedEvent) }
                                    };

            container.RegisterInstance<IMessageSerialiser>(new JsonMessageSerialiser(messageDictionary), new ContainerControlledLifetimeManager());

            var ftpClient = new FtpQueueClient();
            ftpClient.ConnectAsync(new Uri("ftp://ftp.jdibble.co.uk/site1/Personal/service-bus-ftp2/queue"), new NetworkCredential("jdibble-001", "jli798ik")).Wait();

            container.RegisterInstance<IFtpQueueClient>(ftpClient, new ContainerControlledLifetimeManager());

            var serviceBus =
                ServiceBusBuilder.Configure()
                    .WithLogger(container.Resolve<ILog>())
                    .WithHostAddress(new Uri("http://servicebus-ftp2.jdibble.co.uk"))
                    .WithHttpTransport(container.Resolve<IMessageSerialiser>())
                    .AsMvcServiceBus(RouteTable.Routes, container.Resolve<IQueueManager>())
                    .Build()
                        .WithMessageHandler(container.Resolve<SharedMessageHandler>())
                        .Subscribe(container.Resolve<SharedEventHandler>())
                        .WithPeerAsync(new Peer(new Uri("http://servicebus-ftp.jdibble.co.uk"))).Result;

            serviceBus.WithPeerAsync(new Peer(new Uri("http://servicebus.jdibble.co.uk")));
            serviceBus.WithPeerAsync(new Peer(new Uri("http://servicebus2.jdibble.co.uk")));

            container.RegisterInstance(serviceBus, new ContainerControlledLifetimeManager());

            container.RegisterType<ServiceBusHub>(new ContainerControlledLifetimeManager());
        }
Ejemplo n.º 2
0
 public void TestSetup()
 {
     this._messageTypeDictionary = new MessageTypeDictionary
     {
         {
             MessageExtensions
             .MessageTypeSignature <DummyMessage>(),
             typeof(DummyMessage)
         },
         {
             MessageExtensions
             .MessageTypeSignature <DummyEvent>(),
             typeof(DummyEvent)
         }
     };
 }
 public void TestSetup()
 {
     this._messageTypeDictionary = new MessageTypeDictionary
                                   {
                                       {
                                           MessageExtensions
                                           .MessageTypeSignature<DummyMessage>(),
                                           typeof(DummyMessage)
                                       },
                                       {
                                           MessageExtensions
                                           .MessageTypeSignature<DummyEvent>(),
                                           typeof(DummyEvent)
                                       }
                                   };
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Get dictionary map of message Guids to model Types
        /// </summary>
        /// <param name="reload"></param>
        /// <returns></returns>
        public static Dictionary <Guid, Type> GetMessageTypeDictionary(bool reload = false)
        {
            if (MessageTypeDictionary == null || MessageTypeDictionary.Count() == 0 || reload == true)
            {
                MessageTypeDictionary = new Dictionary <Guid, Type>();
                var interfaceType = typeof(IMessage);
                try
                {
                    var assemblyTypes = AppDomain.CurrentDomain.GetAssemblies()
                                        .SelectMany(x => x.GetTypes())
                                        .ToList();
                    assemblyTypes?
// Required because of UWP 'release' build runtime error when traversing GetAssemblies()
                    //.Where(x => interfaceType.IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract)
                    //.ToList()
                    .ForEach(x =>
                    {
                        try
                        {
// Required because of UWP 'release' build runtime error when traversing GetAssemblies()
                            if (typeof(Message).IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract)
                            {
                                var instance  = (IMessage)Activator.CreateInstance(x);
                                var messageId = instance.GetMessageId();
                                if (messageId != Guid.Empty)
                                {
                                    MessageTypeDictionary.Add(instance.GetMessageId(), x);
                                }
                            }
                        }
                        catch (Exception)
                        {
// Required because of UWP 'release' build runtime error when traversing GetAssemblies()
                            GuidDictionaryErrors.Add($"{x.FullName}");
                        }
                    });
                }
                catch (Exception e)
                {
                    throw new BotMessageException($"Unable to register message definitions", e);
                }
            }
            return(MessageTypeDictionary);
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            var tcpEndPoint = new IPEndPoint(IPAddress.Loopback, 5060);
            var udpEndPoint = new IPEndPoint(IPAddress.Loopback, 5061);

            var typeDict = new MessageTypeDictionary();

            var host = new Host(tcpEndPoint, udpEndPoint, GetServerRouter(), typeDict);

            host.Start();

            var client = new TcpClient();

            client.Connect(new IPEndPoint(IPAddress.Loopback, 5060));
            var connection = new Connection(client, GetClientRouter(), typeDict);

            connection.SendReliable(new HelloMsg()
            {
                Hello = "Hello world!", SomeInt1 = 42, SomeFloat = 0.0003f
            }).Wait();
            var resp = connection.SendReliable <HelloMsg>(new HelloMsg()
            {
                Hello = "Req msg", SomeInt1 = 0, SomeFloat = 0.0f
            }).Result;

            var tcpresp = connection.SendReliable <TcpTestResponse>(new TcpTestRequest()
            {
                test = "TCPRequest"
            }).Result;

            Console.WriteLine($"Client received: {tcpresp}");
            var udpresp = connection.SendReliable <UdpTestResponse>(new UdpTestRequest()
            {
                test = "UDPRequest"
            }).Result;

            Console.WriteLine($"Client received: {udpresp}");

            Console.ReadKey();
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Initialises a new instance of the <see cref="JsonMessageSerialiser"/> class.
 /// </summary>
 /// <param name="messageTypeDictionary">Message type to message key mappings.</param>
 public JsonMessageSerialiser(MessageTypeDictionary messageTypeDictionary)
 {
     this._messageTypeDictionary = messageTypeDictionary;
 }
Ejemplo n.º 7
0
        public static void RegisterTypes(IUnityContainer container)
        {
            var hierarchy = (Hierarchy)LogManager.GetRepository();

            hierarchy.Root.RemoveAllAppenders();

            hierarchy.Root.Level = Level.Debug;
            hierarchy.RaiseConfigurationChanged(EventArgs.Empty);

            FileAppender fileAppender = new RollingFileAppender();

            fileAppender.AppendToFile = true;
            fileAppender.LockingModel = new FileAppender.MinimalLock();
            fileAppender.File         = HttpContext.Current.Server.MapPath("~/TestHarness2.log.txt");
            var patternLayout = new PatternLayout {
                ConversionPattern = "%d [%2%t] %-5p [%-10c]   %m%n%n"
            };

            patternLayout.ActivateOptions();

            fileAppender.Layout = patternLayout;
            fileAppender.ActivateOptions();

            BasicConfigurator.Configure(fileAppender);

            var logger = LogManager.GetLogger(typeof(IServiceBus));

            container.RegisterInstance <ILog>(logger, new ContainerControlledLifetimeManager());

            container.RegisterType <IQueueManager, FtpQueueManager>(new ContainerControlledLifetimeManager());

            container.RegisterType <SharedMessageHandler>();

            var messageDictionary = new MessageTypeDictionary
            {
                { ServiceBus.Messaging.MessageExtensions.MessageTypeSignature <SharedMessage>(), typeof(SharedMessage) },
                { ServiceBus.Messaging.MessageExtensions.MessageTypeSignature <NonSharedMessage>(), typeof(NonSharedMessage) },
                { ServiceBus.Messaging.MessageExtensions.MessageTypeSignature <SharedEvent>(), typeof(SharedEvent) }
            };

            container.RegisterInstance <IMessageSerialiser>(new JsonMessageSerialiser(messageDictionary), new ContainerControlledLifetimeManager());

            var ftpClient = new FtpQueueClient();

            ftpClient.ConnectAsync(new Uri("ftp://ftp.jdibble.co.uk/site1/Personal/service-bus-ftp2/queue"), new NetworkCredential("jdibble-001", "jli798ik")).Wait();

            container.RegisterInstance <IFtpQueueClient>(ftpClient, new ContainerControlledLifetimeManager());

            var serviceBus =
                ServiceBusBuilder.Configure()
                .WithLogger(container.Resolve <ILog>())
                .WithHostAddress(new Uri("http://servicebus-ftp2.jdibble.co.uk"))
                .WithHttpTransport(container.Resolve <IMessageSerialiser>())
                .AsMvcServiceBus(RouteTable.Routes, container.Resolve <IQueueManager>())
                .Build()
                .WithMessageHandler(container.Resolve <SharedMessageHandler>())
                .Subscribe(container.Resolve <SharedEventHandler>())
                .WithPeerAsync(new Peer(new Uri("http://servicebus-ftp.jdibble.co.uk"))).Result;

            serviceBus.WithPeerAsync(new Peer(new Uri("http://servicebus.jdibble.co.uk")));
            serviceBus.WithPeerAsync(new Peer(new Uri("http://servicebus2.jdibble.co.uk")));

            container.RegisterInstance(serviceBus, new ContainerControlledLifetimeManager());

            container.RegisterType <ServiceBusHub>(new ContainerControlledLifetimeManager());
        }
 /// <summary>
 /// Initialises a new instance of the <see cref="JsonMessageSerialiser"/> class.
 /// </summary>
 /// <param name="messageTypeDictionary">Message type to message key mappings.</param>
 public JsonMessageSerialiser(MessageTypeDictionary messageTypeDictionary)
 {
     this._messageTypeDictionary = messageTypeDictionary;
 }