diff --git a/build/package.nuspec b/build/package.nuspec index 50cd021..d883397 100644 --- a/build/package.nuspec +++ b/build/package.nuspec @@ -15,7 +15,7 @@ false rabbitmq chinchilla - + diff --git a/src/Chinchilla.Integration/Chinchilla.Integration.csproj b/src/Chinchilla.Integration/Chinchilla.Integration.csproj index 56a3700..7f124ec 100644 --- a/src/Chinchilla.Integration/Chinchilla.Integration.csproj +++ b/src/Chinchilla.Integration/Chinchilla.Integration.csproj @@ -43,8 +43,8 @@ ..\packages\NUnit.3.5.0\lib\net45\nunit.framework.dll True - - ..\packages\RabbitMQ.Client.3.6.0\lib\net45\RabbitMQ.Client.dll + + ..\packages\RabbitMQ.Client.4.1.1\lib\net451\RabbitMQ.Client.dll True diff --git a/src/Chinchilla.Integration/packages.config b/src/Chinchilla.Integration/packages.config index d36ddb1..3121792 100644 --- a/src/Chinchilla.Integration/packages.config +++ b/src/Chinchilla.Integration/packages.config @@ -5,5 +5,5 @@ - + \ No newline at end of file diff --git a/src/Chinchilla.Specifications/Chinchilla.Specifications.csproj b/src/Chinchilla.Specifications/Chinchilla.Specifications.csproj index 49b5f35..eb5a13b 100644 --- a/src/Chinchilla.Specifications/Chinchilla.Specifications.csproj +++ b/src/Chinchilla.Specifications/Chinchilla.Specifications.csproj @@ -61,8 +61,8 @@ ..\packages\Moq.4.5.29\lib\net45\Moq.dll True - - ..\packages\RabbitMQ.Client.3.6.0\lib\net45\RabbitMQ.Client.dll + + ..\packages\RabbitMQ.Client.4.1.1\lib\net451\RabbitMQ.Client.dll True diff --git a/src/Chinchilla.Specifications/packages.config b/src/Chinchilla.Specifications/packages.config index d8a814c..cb7bde7 100644 --- a/src/Chinchilla.Specifications/packages.config +++ b/src/Chinchilla.Specifications/packages.config @@ -6,5 +6,5 @@ - + \ No newline at end of file diff --git a/src/Chinchilla/Chinchilla.csproj b/src/Chinchilla/Chinchilla.csproj index 33e341e..67bafef 100644 --- a/src/Chinchilla/Chinchilla.csproj +++ b/src/Chinchilla/Chinchilla.csproj @@ -35,8 +35,8 @@ false - - ..\packages\RabbitMQ.Client.3.6.0\lib\net45\RabbitMQ.Client.dll + + ..\packages\RabbitMQ.Client.4.1.1\lib\net451\RabbitMQ.Client.dll True diff --git a/src/Chinchilla/Topologies/Model/TopologyBuilder.cs b/src/Chinchilla/Topologies/Model/TopologyBuilder.cs index 1467c8d..882e86f 100644 --- a/src/Chinchilla/Topologies/Model/TopologyBuilder.cs +++ b/src/Chinchilla/Topologies/Model/TopologyBuilder.cs @@ -31,38 +31,30 @@ public void Visit(IQueue queue) { VisitOnce(queue, () => { - if (queue.HasName) - { - var args = new Dictionary(); - - if (queue.QueueAutoExpire.HasValue) - { - args.Add("x-expires", queue.QueueAutoExpire.Value.TotalMilliseconds); - } + var args = new Dictionary(); - if (!string.IsNullOrEmpty(queue.DeadLetterExchange)) - { - args.Add("x-dead-letter-exchange", queue.DeadLetterExchange); - } - - if (queue.MessageTimeToLive.HasValue) - { - args.Add("x-message-ttl", (int)queue.MessageTimeToLive.Value.TotalMilliseconds); - } + if (queue.QueueAutoExpire.HasValue) + { + args.Add("x-expires", queue.QueueAutoExpire.Value.TotalMilliseconds); + } - model.Execute(m => - m.QueueDeclare( - queue.Name, - queue.Durability == Durability.Durable, // durable - queue.IsExclusive, // exclusive - queue.IsAutoDelete, // auto-delete - args)); + if (!string.IsNullOrEmpty(queue.DeadLetterExchange)) + { + args.Add("x-dead-letter-exchange", queue.DeadLetterExchange); } - else + + if (queue.MessageTimeToLive.HasValue) { - var declared = model.Execute(m => m.QueueDeclare()); - queue.Name = declared.QueueName; + args.Add("x-message-ttl", (int)queue.MessageTimeToLive.Value.TotalMilliseconds); } + + model.Execute(m => + m.QueueDeclare( + queue.HasName ? queue.Name : "", + queue.Durability == Durability.Durable, // durable + queue.IsExclusive, // exclusive + queue.IsAutoDelete, // auto-delete + args)); }); } @@ -94,7 +86,8 @@ public void Visit(IBinding binding) { model.Execute(m => { - Action bindFunction; + Action> bindFunction; + if (binding.Bindable is IQueue) { bindFunction = m.QueueBind; @@ -103,19 +96,19 @@ public void Visit(IBinding binding) { // Reverse from/to for binding exchanges, because the parameters of ExchangeBind // don't match QueueBind - bindFunction = (from, to, keys) => m.ExchangeBind(to, from, keys); + bindFunction = (from, to, keys, args) => m.ExchangeBind(to, from, keys, args); } if (binding.RoutingKeys.Any()) { foreach (var key in binding.RoutingKeys) { - bindFunction(binding.Bindable.Name, binding.Exchange.Name, key); + bindFunction(binding.Bindable.Name, binding.Exchange.Name, key, null); } } else { - bindFunction(binding.Bindable.Name, binding.Exchange.Name, "#"); + bindFunction(binding.Bindable.Name, binding.Exchange.Name, "#", null); } }); diff --git a/src/Chinchilla/packages.config b/src/Chinchilla/packages.config index c6d8b60..bfa7fce 100644 --- a/src/Chinchilla/packages.config +++ b/src/Chinchilla/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file