void RenamePrincipalHack(Configure configure) { #region 3to4RenamePrincipalHack ConfigUnicastBus unicastBus = configure.UnicastBus(); unicastBus.RunHandlersUnderIncomingPrincipal(true); #endregion }
/// <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."); } } }
/// <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; }
/// <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 }
void Send() { #region BasicSend ConfigUnicastBus configUnicastBus = Configure.With().UnicastBus(); IBus bus = configUnicastBus.CreateBus().Start(); bus.Send(new MyMessage()); #endregion }
void Simple(Configure configure) { #region HandlerOrderingWithCode ConfigUnicastBus configUnicastBus = configure.UnicastBus(); configUnicastBus.LoadMessageHandlers(First <HandlerB> .Then <HandlerA>().AndThen <HandlerC>()); #endregion }
ForInstallationOn(Configure configure) { #region Installers ConfigUnicastBus configUnicastBus = configure.UnicastBus(); IStartableBus startableBus = configUnicastBus.CreateBus(); startableBus.Start(() => Configure.Instance.ForInstallationOn <Windows>().Install()); #endregion }
void Simple() { #region Hosting-SendOnly Configure configure = Configure.With(); ConfigUnicastBus configUnicastBus = configure.UnicastBus(); IBus bus = configUnicastBus.SendOnly(); #endregion }
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 }
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(); } }
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); }
/// <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 <>))); }
/// <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); }
/// <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); }