Exemple #1
0
 void RenamePrincipalHack(Configure configure)
 {
     #region 3to4RenamePrincipalHack
     ConfigUnicastBus unicastBus = configure.UnicastBus();
     unicastBus.RunHandlersUnderIncomingPrincipal(true);
     #endregion
 }
Exemple #2
0
        /// <summary>
        /// Checks if the specifier contains a given role and uses it to configure the UnicastBus appropriately.
        /// </summary>
        /// <param name="specifier"></param>
        public void ConfigureBusForEndpoint(IConfigureThisEndpoint specifier)
        {
            ConfigUnicastBus config = null;

            foreach (var role in availableRoles)
            {
                var roleType = role.Key;
                if (!roleType.IsAssignableFrom(specifier.GetType()))
                {
                    continue;
                }

                if (config != null)
                {
                    throw new InvalidOperationException("Endpoints can only have one role");
                }

                //apply role
                var roleConfigurer = Activator.CreateInstance(role.Value) as IConfigureRole;

                config = roleConfigurer.ConfigureRole(specifier);
                Logger.Info("Role " + roleType + " configured");
                foreach (var markerProfile in GetMarkerRoles(specifier.GetType(), roleType))
                {
                    Logger.Info("Role " + markerProfile + " is marked.");
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// Use unicast messaging (your best option on nServiceBus right now).
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public static ConfigUnicastBus UnicastBus(this Configure config)
        {
            Instance = new ConfigUnicastBus();
            Instance.Configure(config);

            return(Instance);
        }
    static void Main()
    {
        Configure.Serialization.Json();
        Configure configure = Configure.With();

        configure.Log4Net();
        configure.DefineEndpointName("Samples.UsernameHeader.Endpoint2");
        configure.DefaultBuilder();
        configure.UseTransport <Msmq>();
        configure.InMemorySagaPersister();
        configure.UseInMemoryTimeoutPersister();
        configure.InMemorySubscriptionStorage();

        #region manipulate-principal

        ConfigUnicastBus unicastBus = configure.UnicastBus();
        unicastBus.RunHandlersUnderIncomingPrincipal(true);
        using (IStartableBus startableBus = unicastBus.CreateBus())
        {
            #endregion

            startableBus
            .Start(() => configure.ForInstallationOn <Windows>().Install());
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
    }
        /// <summary>
        /// Use unicast messaging (your best option on nServiceBus right now).
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public static ConfigUnicastBus UnicastBus(this Configure config)
        {
            Instance = new ConfigUnicastBus();
            Instance.Configure(config);

            return Instance;
        }
        /// <summary>
        /// Use unicast messaging (your best option on nServiceBus right now).
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public static ConfigUnicastBus UnicastBus(this Configure config)
        {
            var cfg = new ConfigUnicastBus();
            cfg.Configure(config);

            return cfg;
        } 
Exemple #7
0
        /// <summary>
        /// Checks if the specifier contains a given role and uses it to configure the UnicastBus appropriately.
        /// </summary>
        /// <param name="specifier"></param>
        public void ConfigureBusForEndpoint(IConfigureThisEndpoint specifier)
        {
            ConfigUnicastBus unicastBusConfig = null;

            var roleFound = false;

            foreach (var role in availableRoles)
            {
                var  roleType = role.Key;
                bool handlesRole;


                if (roleType.IsGenericType)
                {
                    handlesRole =
                        specifier.GetType()
                        .GetInterfaces()
                        .Any(
                            x =>
                            x.IsGenericType &&
                            x.GetGenericTypeDefinition() == roleType.GetGenericTypeDefinition());
                }
                else
                {
                    handlesRole = roleType.IsInstanceOfType(specifier);
                }

                if (!handlesRole)
                {
                    continue;
                }
                roleFound = true;

                //apply role
                var roleConfigurer = Activator.CreateInstance(role.Value) as IConfigureRole;

                var config = roleConfigurer.ConfigureRole(specifier);

                if (config != null)
                {
                    if (unicastBusConfig != null)
                    {
                        throw new InvalidOperationException("Only one role can configure the unicastbus");
                    }

                    unicastBusConfig = config;
                }

                Logger.Info("Role " + roleType + " configured");
                foreach (var markerProfile in GetMarkerRoles(specifier.GetType(), roleType))
                {
                    Logger.Info("Role " + markerProfile + " is marked.");
                }
            }
            if (!roleFound)
            {
                throw new Exception("Did you forget to specify the endpoint role? Please make sure you specify the endpoint role as either 'AsA_Client','AsA_Host','AsA_Publisher', 'AsA_Server' or some other custom 'IRole'.");
            }
        }
 public void RemovePrincipalHack()
 {
     #region 4to5RemovePrincipalHack
     Configure        configure  = Configure.With();
     ConfigUnicastBus unicastBus = configure.UnicastBus();
     unicastBus.RunHandlersUnderIncomingPrincipal(true);
     #endregion
 }
 public void RenamePrincipalHack()
 {
     #region 3to4RenamePrincipalHack
     Configure        configure  = Configure.With();
     ConfigUnicastBus unicastBus = configure.UnicastBus();
     unicastBus.ImpersonateSender(true);
     #endregion
 }
Exemple #10
0
        void Send()
        {
            #region BasicSend
            ConfigUnicastBus configUnicastBus = Configure.With().UnicastBus();
            IBus             bus = configUnicastBus.CreateBus().Start();

            bus.Send(new MyMessage());
            #endregion
        }
Exemple #11
0
        void Simple(Configure configure)
        {
            #region HandlerOrderingWithCode

            ConfigUnicastBus configUnicastBus = configure.UnicastBus();
            configUnicastBus.LoadMessageHandlers(First <HandlerB> .Then <HandlerA>().AndThen <HandlerC>());

            #endregion
        }
Exemple #12
0
        ForInstallationOn(Configure configure)
        {
            #region Installers

            ConfigUnicastBus configUnicastBus = configure.UnicastBus();
            IStartableBus    startableBus     = configUnicastBus.CreateBus();
            startableBus.Start(() => Configure.Instance.ForInstallationOn <Windows>().Install());

            #endregion
        }
Exemple #13
0
        void Simple()
        {
            #region Hosting-SendOnly

            Configure        configure        = Configure.With();
            ConfigUnicastBus configUnicastBus = configure.UnicastBus();
            IBus             bus = configUnicastBus.SendOnly();

            #endregion
        }
Exemple #14
0
        void Startup()
        {
            #region Hosting-Startup

            Configure        configure        = Configure.With();
            ConfigUnicastBus configUnicastBus = configure.UnicastBus();
            IStartableBus    startableBus     = configUnicastBus.CreateBus();
            IBus             bus = startableBus.Start();
            #endregion
        }
        public void Simple()
        {
            #region Installers

            Configure        configure        = Configure.With();
            ConfigUnicastBus configUnicastBus = configure.UnicastBus();
            IStartableBus    startableBus     = configUnicastBus.CreateBus();
            startableBus.Start(() => Configure.Instance.ForInstallationOn <Windows>().Install());

            #endregion
        }
Exemple #16
0
    static void Main()
    {
        Console.Title = "Samples.StartupShutdown";
        #region Program

        Configure.Features.Enable <MyFeature>();
        Logger.WriteLine("Starting configuration");
        Configure configure = Configure.With();
        configure.Log4Net();
        configure.DefineEndpointName("Samples.StartupShutdown");
        configure.DefaultBuilder();
        configure.UseInMemoryTimeoutPersister();

        Logger.WriteLine("Calling Configure.UnicastBus");
        ConfigUnicastBus unicastBus = configure.UnicastBus();
        Logger.WriteLine("Calling ConfigUnicastBus.CreateBus");
        using (IStartableBus startableBus = unicastBus.CreateBus())
        {
            Logger.WriteLine("Calling IStartableBus.Start");
            IBus bus = startableBus
                       .Start(() =>
            {
                Logger.WriteLine("Calling ForInstallationOn.Install");
                configure.ForInstallationOn <Windows>().Install();
            });

            //simulate some activity
            Thread.Sleep(500);

            Logger.WriteLine("Bus is processing messages");
            Logger.WriteLine("Calling IStartableBus.Shutdown");
            startableBus.Shutdown();
            Logger.WriteLine("Calling IStartableBus.Dispose");
        }
        Logger.WriteLine("Finished");
        #endregion
        Console.WriteLine("Press any key to exit");
        Console.ReadKey();
    }
    static void Main()
    {
        Console.Title = "Samples.UsernameHeader.Endpoint2";
        Configure configure = Configure.With();

        configure.Log4Net();
        configure.DefineEndpointName("Samples.UsernameHeader.Endpoint2");
        configure.DefaultBuilder();
        configure.MsmqTransport();
        configure.InMemorySagaPersister();
        configure.RunTimeoutManagerWithInMemoryPersistence();
        configure.InMemorySubscriptionStorage();
        configure.JsonSerializer();
        #region manipulate-principal
        ConfigUnicastBus unicastBus = configure.UnicastBus();
        unicastBus.ImpersonateSender(true);
        using (IStartableBus startableBus = unicastBus.CreateBus())
        {
            #endregion
            startableBus.Start(() => configure.ForInstallationOn <Windows>().Install());
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
    }
Exemple #18
0
    static void Main()
    {
        #region Program
        Logger.WriteLine("Starting configuration");
        Configure configure = Configure.With();
        configure.Log4Net();
        configure.DefineEndpointName("Samples.StartupShutdown");

        configure.DefaultBuilder();
        configure.MsmqTransport();

        Logger.WriteLine("Calling Configure.UnicastBus");
        ConfigUnicastBus unicastBus = configure.UnicastBus();

        Logger.WriteLine("Calling ConfigUnicastBus.CreateBus");
        using (IStartableBus startableBus = unicastBus.CreateBus())
        {
            Logger.WriteLine("Calling IStartableBus.Start");
            IBus bus = startableBus
                       .Start(() =>
            {
                Logger.WriteLine("Calling ForInstallationOn.Install");
                configure.ForInstallationOn <Windows>().Install();
            });

            //simulate some bus activity
            Thread.Sleep(500);

            Logger.WriteLine("Bus is processing messages");
            Logger.WriteLine("Calling IStartableBus.Dispose");
        }
        Logger.WriteLine("Finished");
        #endregion
        Console.WriteLine("Press any key to stop program\r\n");
        Console.ReadKey();
    }
 /// <summary>
 /// Instructs the bus to flow claims across the nodes.
 /// </summary>
 /// <param name="config"></param>
 /// <param name="value"></param>
 /// <returns></returns>
 public static ConfigUnicastBus FlowIdentityClaims(this ConfigUnicastBus config)
 {
     return(FlowIdentityClaims(config, true));
 }
 public void Simple_handler_should_be_classified_as_a_handler()
 {
     Assert.IsTrue(ConfigUnicastBus.IsMessageHandler(typeof(SimpleHandler)));
 }
 public void Generic_implemented_type_definition_handler_should_not_be_classified_as_a_handler()
 {
     Assert.IsTrue(ConfigUnicastBus.IsMessageHandler(typeof(GenericImplementedHandler)));
 }
 public void Specific_generic_type_definition_handler_should_not_be_classified_as_a_handler()
 {
     Assert.IsTrue(ConfigUnicastBus.IsMessageHandler(typeof(GenericTypeDefinitionHandler <string>)));
 }
 public void Interface_handler_should_not_be_classified_as_a_handler()
 {
     Assert.IsFalse(ConfigUnicastBus.IsMessageHandler(typeof(InterfaceHandler)));
 }
 public void Not_implementing_IHandleMessages_should_not_be_classified_as_a_handler()
 {
     Assert.IsFalse(ConfigUnicastBus.IsMessageHandler(typeof(NotImplementingIHandleMessages)));
 }
 public void Abstract_handler_should_not_be_classified_as_a_handler()
 {
     Assert.IsFalse(ConfigUnicastBus.IsMessageHandler(typeof(AbstractHandler)));
 }
 public void Concrete_implementation_of_abstract_handler_should_be_classified_as_a_handler()
 {
     Assert.IsTrue(ConfigUnicastBus.IsMessageHandler(typeof(ConcreteImplementationOfAbstractHandler)));
 }
        /// <summary>
        /// Instructs the bus to flow claims across the nodes.
        /// </summary>
        /// <param name="config"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public static ConfigUnicastBus FlowIdentityClaims(this ConfigUnicastBus config, bool value)
        {
            Flow = value;

            return(config);
        }
Exemple #28
0
 /// <summary>
 /// Instructs the bus to run the processing of messages being handled
 /// under the permissions of the sender of the message.
 /// </summary>
 public static ConfigUnicastBus ImpersonateSender(this ConfigUnicastBus config, bool value)
 {
     return(config.RunHandlersUnderIncomingPrincipal(value));
 }
 public void Generic_type_definition_handler_should_not_be_classified_as_a_handler()
 {
     Assert.IsFalse(ConfigUnicastBus.IsMessageHandler(typeof(GenericTypeDefinitionHandler <>)));
 }
Exemple #30
0
        /// <summary>
        /// Instructs the bus to run the processing of messages being handled under the incoming user principal, by default this is a <see cref="GenericPrincipal"/> created from the <see cref="Headers.WindowsIdentityName"/>.
        /// </summary>
        public static ConfigUnicastBus RunHandlersUnderIncomingPrincipal(this ConfigUnicastBus config, bool value)
        {
            Impersonate = value;

            return(config);
        }
Exemple #31
0
        /// <summary>
        /// Instructs the bus to run the processing of messages being handled
        /// under the permissions of the sender of the message.
        /// </summary>
        /// <param name="config"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public static ConfigUnicastBus ImpersonateSender(this ConfigUnicastBus config, bool value)
        {
            Impersonate = value;

            return(config);
        }