Skip to content

Commit

Permalink
Merge pull request #124 from Particular/hotfix-5.0.3
Browse files Browse the repository at this point in the history
implement IPersistTimeoutsV2 interface
  • Loading branch information
SzymonPobiega committed Oct 9, 2015
2 parents 36eba59 + 03ccac7 commit df4df51
Show file tree
Hide file tree
Showing 19 changed files with 276 additions and 128 deletions.
4 changes: 2 additions & 2 deletions packaging/nuget/nservicebus.nhibernate.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
<dependencies>
<dependency id="Iesi.Collections" version="[4.0.1.4000, 5.0.0)" />
<dependency id="NHibernate" version="[4.0.1.4000, 5.0.0)" />
<dependency id="NServiceBus" version="[4.4.2, 5.0.0)" />
<dependency id="NServiceBus.Interfaces" version="[4.4.2, 5.0.0)" />
<dependency id="NServiceBus" version="[4.4.8, 5.0.0)" />
<dependency id="NServiceBus.Interfaces" version="[4.4.8, 5.0.0)" />
</dependencies>
</metadata>
<files>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
{
using System;
using System.Collections.Generic;
using NServiceBus.Unicast.Subscriptions.NHibernate;
using ObjectBuilder.Common;
using ObjectBuilder.Common.Config;
using Persistence.InMemory.SagaPersister;
Expand Down Expand Up @@ -145,6 +146,12 @@ public static Configure DefineSubscriptionStorage(this Configure config, string
return config.MsmqSubscriptionStorage();
}

if (persister.Contains("NServiceBus.Unicast.Subscriptions.NHibernate.CachedSubscriptionStorage")
|| persister.Contains(typeof(SubscriptionStorage).FullName))
{
return config.UseNHibernateSubscriptionPersister();
}

CallConfigureForPersister(config, persister);

return config;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
Expand Down Expand Up @@ -46,16 +46,14 @@
<HintPath>..\packages\NHibernate.4.0.1.4000\lib\net40\NHibernate.dll</HintPath>
</Reference>
<Reference Include="NServiceBus, Version=4.4.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NServiceBus.Interfaces.4.4.2\lib\net40\NServiceBus.dll</HintPath>
<HintPath>..\packages\NServiceBus.Interfaces.4.4.8\lib\net40\NServiceBus.dll</HintPath>
</Reference>
<Reference Include="NServiceBus.AcceptanceTesting, Version=4.4.2.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NServiceBus.AcceptanceTesting.4.4.2\lib\net40\NServiceBus.AcceptanceTesting.dll</HintPath>
</Reference>
<Reference Include="NServiceBus.Core, Version=4.4.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NServiceBus.4.4.2\lib\net40\NServiceBus.Core.dll</HintPath>
<HintPath>..\packages\NServiceBus.4.4.8\lib\net40\NServiceBus.Core.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.6.3.13283, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<package id="Iesi.Collections" version="4.0.1.4000" targetFramework="net40" />
<package id="log4net" version="1.2.10" targetFramework="net40" />
<package id="NHibernate" version="4.0.1.4000" targetFramework="net40" />
<package id="NServiceBus" version="4.4.2" targetFramework="net40" />
<package id="NServiceBus" version="4.4.8" targetFramework="net4" />
<package id="NServiceBus.AcceptanceTesting" version="4.4.2" targetFramework="net40" />
<package id="NServiceBus.Interfaces" version="4.4.2" targetFramework="net40" />
<package id="NServiceBus.Interfaces" version="4.4.8" targetFramework="net4" />
<package id="NUnit" version="2.6.3" targetFramework="net40" />
</packages>
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public void Handle(MyMessage message)
}

[Serializable]
[TimeToBeReceived("00:00:01")]
[TimeToBeReceived("00:00:000001")]
public class MyMessage : IMessage
{
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
{
using System;
using System.Collections.Generic;
using NServiceBus.Unicast.Subscriptions.NHibernate;
using ObjectBuilder.Common;
using ObjectBuilder.Common.Config;
using Persistence.InMemory.SagaPersister;
Expand Down Expand Up @@ -145,6 +146,12 @@ public static Configure DefineSubscriptionStorage(this Configure config, string
return config.MsmqSubscriptionStorage();
}

if (persister.Contains("NServiceBus.Unicast.Subscriptions.NHibernate.CachedSubscriptionStorage")
|| persister.Contains(typeof(SubscriptionStorage).FullName))
{
return config.UseNHibernateSubscriptionPersister();
}

CallConfigureForPersister(config, persister);

return config;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,47 +7,47 @@
using PubSub;
using ScenarioDescriptors;

public class When_multiple_versions_of_a_message_is_published : NServiceBusAcceptanceTest
public class When_publishing_multiversioned_message : NServiceBusAcceptanceTest
{
[Test]
public void Should_deliver_is_to_both_v1_and_vX_subscribers()
{
Scenario.Define<Context>()
.WithEndpoint<V2Publisher>(b =>
b.Given((bus, context) => Subscriptions.OnEndpointSubscribed(s =>
{
if (s.SubscriberReturnAddress.Queue.Contains("V1Subscriber"))
context.V1Subscribed = true;
if (s.SubscriberReturnAddress.Queue.Contains("V2Subscriber"))
context.V2Subscribed = true;
})
)
.When(c => c.V1Subscribed && c.V2Subscribed, (bus, c) => bus.Publish<V2Event>(e =>
{
e.SomeData = 1;
e.MoreInfo = "dasd";
})))
.WithEndpoint<V1Subscriber>(b => b.Given((bus,c) =>
.WithEndpoint<V2Publisher>(b =>
b.Given((bus, context) => Subscriptions.OnEndpointSubscribed(s =>
{
if (s.SubscriberReturnAddress.Queue.Contains("V1Subscriber"))
context.V1Subscribed = true;
if (s.SubscriberReturnAddress.Queue.Contains("V2Subscriber"))
context.V2Subscribed = true;
}))
.When(c => c.V1Subscribed && c.V2Subscribed, (bus, c) => bus.Publish<V2Event>(e =>
{
bus.Subscribe<V1Event>();
if (!Feature.IsEnabled<MessageDrivenSubscriptions>())
c.V1Subscribed = true;
}))
.WithEndpoint<V2Subscriber>(b => b.Given((bus,c) =>
{
bus.Subscribe<V2Event>();
if (!Feature.IsEnabled<MessageDrivenSubscriptions>())
c.V2Subscribed = true;
}))
.Done(c => c.V1SubscriberGotTheMessage && c.V2SubscriberGotTheMessage)
.Repeat(r =>//broken for active mq until #1098 is fixed
r.For<AllSerializers>(Serializers.Binary)) //versioning isn't supported for binary serialization
.Should(c =>
{
//put asserts in here if needed
})
.Run();
e.SomeData = 1;
e.MoreInfo = "dasd";
})))
.WithEndpoint<V1Subscriber>(b => b.Given((bus, c) =>
{
bus.Subscribe<V1Event>();
if (!Feature.IsEnabled<MessageDrivenSubscriptions>())
c.V1Subscribed = true;
}))
.WithEndpoint<V2Subscriber>(b => b.Given((bus, c) =>
{
bus.Subscribe<V2Event>();
if (!Feature.IsEnabled<MessageDrivenSubscriptions>())
c.V2Subscribed = true;
}))
.Done(c => c.V1SubscriberGotTheMessage && c.V2SubscriberGotTheMessage)
.Repeat(r => //broken for active mq until #1098 is fixed
r.For<AllSerializers>(Serializers.Binary)) //versioning isn't supported for binary serialization
.Should(c =>
{
Assert.IsTrue(c.V1SubscriberGotTheMessage);
Assert.IsTrue(c.V2SubscriberGotTheMessage);
})
.Run();
}

public class Context : ScenarioContext
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,14 @@
<HintPath>..\packages\NHibernate.4.0.1.4000\lib\net40\NHibernate.dll</HintPath>
</Reference>
<Reference Include="NServiceBus, Version=4.4.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NServiceBus.Interfaces.4.4.2\lib\net40\NServiceBus.dll</HintPath>
<HintPath>..\packages\NServiceBus.Interfaces.4.4.8\lib\net40\NServiceBus.dll</HintPath>
</Reference>
<Reference Include="NServiceBus.AcceptanceTesting, Version=4.4.2.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NServiceBus.AcceptanceTesting.4.4.2\lib\net40\NServiceBus.AcceptanceTesting.dll</HintPath>
</Reference>
<Reference Include="NServiceBus.Core, Version=4.4.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NServiceBus.4.4.2\lib\net40\NServiceBus.Core.dll</HintPath>
<HintPath>..\packages\NServiceBus.4.4.8\lib\net40\NServiceBus.Core.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.6.3.13283, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
Expand Down Expand Up @@ -147,7 +145,7 @@
<Compile Include="App_Packages\NServiceBus.AcceptanceTests\Transactions\When_receiving_a_message_with_transactions_disabled.cs" />
<Compile Include="App_Packages\NServiceBus.AcceptanceTests\Transactions\When_sending_a_message_from_a_non_transactional_endpoint_with_a_ambient_transaction_enabled.cs" />
<Compile Include="App_Packages\NServiceBus.AcceptanceTests\Transactions\When_sending_messages_within_an_ambient_transaction.cs" />
<Compile Include="App_Packages\NServiceBus.AcceptanceTests\Versioning\When_multiple_versions_of_a_message_is_published.cs" />
<Compile Include="App_Packages\NServiceBus.AcceptanceTests\Versioning\When_publishing_multiversioned_message.cs" />
<Compile Include="Config.cs" />
<Compile Include="Issue_67.cs" />
<Compile Include="When_saga_contains_nested_collection_without_parent_relation.cs" />
Expand Down
4 changes: 2 additions & 2 deletions src/NServiceBus.NHibernate.AcceptanceTests/packages.config
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<package id="Iesi.Collections" version="4.0.1.4000" targetFramework="net40" />
<package id="log4net" version="1.2.10" targetFramework="net40" />
<package id="NHibernate" version="4.0.1.4000" targetFramework="net40" />
<package id="NServiceBus" version="4.4.2" targetFramework="net40" />
<package id="NServiceBus" version="4.4.8" targetFramework="net4" />
<package id="NServiceBus.AcceptanceTesting" version="4.4.2" targetFramework="net40" />
<package id="NServiceBus.Interfaces" version="4.4.2" targetFramework="net40" />
<package id="NServiceBus.Interfaces" version="4.4.8" targetFramework="net4" />
<package id="NUnit" version="2.6.3" targetFramework="net40" />
</packages>
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
Expand Down Expand Up @@ -42,12 +42,10 @@
<HintPath>..\packages\NHibernate.4.0.1.4000\lib\net40\NHibernate.dll</HintPath>
</Reference>
<Reference Include="NServiceBus, Version=4.4.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NServiceBus.Interfaces.4.4.2\lib\net40\NServiceBus.dll</HintPath>
<HintPath>..\packages\NServiceBus.Interfaces.4.4.8\lib\net40\NServiceBus.dll</HintPath>
</Reference>
<Reference Include="NServiceBus.Core, Version=4.4.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NServiceBus.4.4.2\lib\net40\NServiceBus.Core.dll</HintPath>
<HintPath>..\packages\NServiceBus.4.4.8\lib\net40\NServiceBus.Core.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
Expand Down
4 changes: 2 additions & 2 deletions src/NServiceBus.NHibernate.PerformanceTests/packages.config
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
<packages>
<package id="Iesi.Collections" version="4.0.1.4000" targetFramework="net40" />
<package id="NHibernate" version="4.0.1.4000" targetFramework="net40" />
<package id="NServiceBus" version="4.4.2" targetFramework="net40" />
<package id="NServiceBus.Interfaces" version="4.4.2" targetFramework="net40" />
<package id="NServiceBus" version="4.4.8" targetFramework="net4" />
<package id="NServiceBus.Interfaces" version="4.4.8" targetFramework="net4" />
</packages>
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
Expand Down Expand Up @@ -41,12 +41,10 @@
<HintPath>..\packages\NHibernate.4.0.1.4000\lib\net40\NHibernate.dll</HintPath>
</Reference>
<Reference Include="NServiceBus, Version=4.4.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NServiceBus.Interfaces.4.4.2\lib\net40\NServiceBus.dll</HintPath>
<HintPath>..\packages\NServiceBus.Interfaces.4.4.8\lib\net40\NServiceBus.dll</HintPath>
</Reference>
<Reference Include="NServiceBus.Core, Version=4.4.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NServiceBus.4.4.2\lib\net40\NServiceBus.Core.dll</HintPath>
<HintPath>..\packages\NServiceBus.4.4.8\lib\net40\NServiceBus.Core.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.6.3.13283, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace NServiceBus.TimeoutPersisters.NHibernate.Tests
public class When_fetching_timeouts_from_storage : InMemoryDBFixture
{
[Test]
public void Should_return_the_complete_list_of_timeouts()
public void GetNextChunk_should_return_the_complete_list_of_timeouts()
{
const int numberOfTimeoutsToAdd = 10;

Expand All @@ -33,7 +33,7 @@ public void Should_return_the_complete_list_of_timeouts()
}

[Test]
public void Should_return_the_next_time_of_retrieval()
public void GetNextChunk_should_return_the_next_time_of_retrieval()
{
var nextTime = DateTime.UtcNow.AddHours(1);

Expand All @@ -55,5 +55,51 @@ public void Should_return_the_next_time_of_retrieval()

Assert.IsTrue((nextTime - nextTimeToRunQuery).TotalSeconds < 1);
}

[Test]
public void Peek_should_return_timeout_with_id()
{
var timeoutData = new TimeoutData
{
Time = DateTime.UtcNow.AddHours(-1),
CorrelationId = "boo",
Destination = new Address("timeouts", RuntimeEnvironment.MachineName),
SagaId = Guid.NewGuid(),
State = new byte[] { 0, 0, 133 },
Headers = new Dictionary<string, string> { { "Bar", "34234" }, { "Foo", "aString1" }, { "Super", "aString2" } },
OwningTimeoutManager = Configure.EndpointName,
};
persister.Add(timeoutData);

var result = persister.Peek(timeoutData.Id);

Assert.AreEqual(timeoutData.Id, result.Id);
Assert.AreEqual(timeoutData.Time.ToString("G"), result.Time.ToString("G"));
Assert.AreEqual(timeoutData.CorrelationId, result.CorrelationId);
Assert.AreEqual(timeoutData.Destination, result.Destination);
Assert.AreEqual(timeoutData.SagaId, result.SagaId);
Assert.AreEqual(timeoutData.State, result.State);
Assert.AreEqual(timeoutData.Headers, result.Headers);
}

[Test]
public void Peek_should_return_null_when_no_existing_timeout_with_id()
{
var timeoutData = new TimeoutData
{
Time = DateTime.UtcNow.AddHours(-1),
CorrelationId = "boo",
Destination = new Address("timeouts", RuntimeEnvironment.MachineName),
SagaId = Guid.NewGuid(),
State = new byte[] { 0, 0, 133 },
Headers = new Dictionary<string, string> { { "Bar", "34234" }, { "Foo", "aString1" }, { "Super", "aString2" } },
OwningTimeoutManager = Configure.EndpointName,
};
persister.Add(timeoutData);

var result = persister.Peek(Guid.NewGuid().ToString());

Assert.IsNull(result);
}
}
}
Loading

0 comments on commit df4df51

Please sign in to comment.