Skip to content

Commit

Permalink
Fixed readyForWorkEndpoint configuration. Updated Starbucks sample to…
Browse files Browse the repository at this point in the history
… use ready for work listener.
  • Loading branch information
CoreyKaylor committed Feb 2, 2011
1 parent 85818bb commit 0b96482
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 11 deletions.
4 changes: 2 additions & 2 deletions Rhino.ServiceBus/LoadBalancer/LoadBalancerFacility.cs
Expand Up @@ -95,9 +95,9 @@ protected override void ReadConfiguration()
}
Endpoint = endpoint;

string readyForWorkEndPoint = busConfig.Attributes["readyForWorkEndPoint"];
string readyForWorkEndPoint = busConfig.Attributes["readyForWorkEndPoint"] ?? uriString;

if (Uri.TryCreate(uriString, UriKind.Absolute, out readyForWork) == false)
if (Uri.TryCreate(readyForWorkEndPoint, UriKind.Absolute, out readyForWork) == false)
{
throw new ConfigurationErrorsException(
"Attribute 'readyForWorkEndPoint' on 'loadBalancer' has an invalid value '" + uriString + "'");
Expand Down
28 changes: 20 additions & 8 deletions Samples/Starbucks.Tests/IntegrationTest.cs
Expand Up @@ -10,34 +10,40 @@

namespace Starbucks.Tests
{
public class IntegrationTest
public class IntegrationTest : IDisposable
{
private RemoteAppDomainLoadBalancerHost baristaLoadBalancer;
private RemoteAppDomainHost cashier;
private RemoteAppDomainHost barista;
private DefaultHost customerHost;

[Fact]
public void Can_by_coffee_from_starbucks()
{
PrepareQueues.Prepare("msmq://localhost/starbucks.barista.balancer", QueueType.LoadBalancer);
PrepareQueues.Prepare("msmq://localhost/starbucks.barista.balancer.acceptingwork", QueueType.LoadBalancer);
PrepareQueues.Prepare("msmq://localhost/starbucks.barista", QueueType.Standard);
PrepareQueues.Prepare("msmq://localhost/starbucks.cashier", QueueType.Standard);
PrepareQueues.Prepare("msmq://localhost/starbucks.customer", QueueType.Standard);

var baristaLoadBalancer = new RemoteAppDomainLoadBalancerHost(typeof (RemoteAppDomainHost).Assembly, "LoadBalancer.config");
baristaLoadBalancer = new RemoteAppDomainLoadBalancerHost(typeof (RemoteAppDomainHost).Assembly, "LoadBalancer.config");
baristaLoadBalancer.Start();

Console.WriteLine("Barista load balancer has started");

var cashier = new RemoteAppDomainHost(typeof(CashierBootStrapper))
cashier = new RemoteAppDomainHost(typeof(CashierBootStrapper))
.Configuration("Cashier.config");
cashier.Start();

Console.WriteLine("Cashier has started");

var barista = new RemoteAppDomainHost(typeof(BaristaBootStrapper))
barista = new RemoteAppDomainHost(typeof(BaristaBootStrapper))
.Configuration("Barista.config");
barista.Start();

Console.WriteLine("Barista has started");

var customerHost = new DefaultHost();
customerHost = new DefaultHost();
customerHost.Start<CustomerBootStrapper>();

var bus = customerHost.Container.Resolve<IServiceBus>();
Expand All @@ -53,9 +59,6 @@ public void Can_by_coffee_from_starbucks()

customer.BuyDrinkSync();

cashier.Close();
barista.Close();

Assert.Equal("Ayende", userInterface.CoffeeRushName);
}

Expand All @@ -73,5 +76,14 @@ public override void CoffeeRush(string name)
CoffeeRushName = name;
}
}


public void Dispose()
{
baristaLoadBalancer.Close();
customerHost.Dispose();
cashier.Close();
barista.Close();
}
}
}
2 changes: 1 addition & 1 deletion Samples/Starbucks/Barista.config
Expand Up @@ -8,7 +8,7 @@
<facilities>
<facility id="rhino.esb" >
<bus threadCount="1"
loadBalancerEndpoint="msmq://localhost/starbucks.barista.balancer"
loadBalancerEndpoint="msmq://localhost/starbucks.barista.balancer.acceptingwork"
numberOfRetries="5"
endpoint="msmq://localhost/starbucks.barista"
/>
Expand Down
1 change: 1 addition & 0 deletions Samples/Starbucks/LoadBalancer.config
Expand Up @@ -10,6 +10,7 @@
<facility id="rhino.esb.loadbalancer" >
<loadBalancer threadCount="1"
endpoint="msmq://localhost/starbucks.barista.balancer"
readyForWorkEndPoint="msmq://localhost/starbucks.barista.balancer.acceptingwork"
/>
</facility>
</facilities>
Expand Down
1 change: 1 addition & 0 deletions Samples/Starbucks/Program.cs
Expand Up @@ -14,6 +14,7 @@ public class Program
public static void Main()
{
PrepareQueues.Prepare("msmq://localhost/starbucks.barista.balancer", QueueType.LoadBalancer);
PrepareQueues.Prepare("msmq://localhost/starbucks.barista.balancer.acceptingwork", QueueType.LoadBalancer);
PrepareQueues.Prepare("msmq://localhost/starbucks.barista", QueueType.Standard);
PrepareQueues.Prepare("msmq://localhost/starbucks.cashier", QueueType.Standard);
PrepareQueues.Prepare("msmq://localhost/starbucks.customer", QueueType.Standard);
Expand Down

0 comments on commit 0b96482

Please sign in to comment.