Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
# Conflicts:
#	RELEASE_NOTES.md
  • Loading branch information
Arkatufus committed May 27, 2022
2 parents 1a1ae13 + 14864f9 commit 2609683
Show file tree
Hide file tree
Showing 18 changed files with 107 additions and 46 deletions.
6 changes: 6 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
#### 1.4.38-beta2 May 27 2022 ####

* [Fix compatibility with Akka.Cluster.Sharding in persistence mode](https://github.com/akkadotnet/Akka.Persistence.MongoDB/pull/259)
* [Bump Akka.NET version to 1.4.38](https://github.com/akkadotnet/akka.net/releases/tag/1.4.38)
* [Bump MongoDb.Driver to 2.15.1](https://github.com/akkadotnet/Akka.Persistence.MongoDB/pull/255)

#### 1.4.38-beta1 April 15 2022 ####

* [Fix BsonTimestamp causes NRE to be thrown](https://github.com/akkadotnet/Akka.Persistence.MongoDB/pull/249)
Expand Down
4 changes: 3 additions & 1 deletion src/Akka.Persistence.MongoDb.Tests/Bug25FixSpec.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

namespace Akka.Persistence.MongoDb.Tests
{
[Collection("MongoDbSpec")]
public class Bug25FixSpec : Akka.TestKit.Xunit2.TestKit, IClassFixture<DatabaseFixture>
{
class MyJournalActor : ReceivePersistentActor
Expand Down Expand Up @@ -111,7 +112,8 @@ class = ""Akka.Persistence.MongoDb.Journal.MongoDbJournal, Akka.Persistence.Mong
}
}";

return ConfigurationFactory.ParseString(specString);
return ConfigurationFactory.ParseString(specString)
.WithFallback(MongoDbPersistence.DefaultConfiguration());
}
}
}
7 changes: 7 additions & 0 deletions src/Akka.Persistence.MongoDb.Tests/MongoDbAllEventsSpec.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ class = ""Akka.Persistence.MongoDb.Journal.MongoDbJournal, Akka.Persistence.Mong
collection = ""EventJournal""
}
}
snapshot-store {
plugin = ""akka.persistence.snapshot-store.mongodb""
mongodb {
class = ""Akka.Persistence.MongoDb.Snapshot.MongoDbSnapshotStore, Akka.Persistence.MongoDb""
connection-string = """ + databaseFixture.ConnectionString + id + @"""
}
}
query {
mongodb {
class = ""Akka.Persistence.MongoDb.Query.MongoDbReadJournalProvider, Akka.Persistence.MongoDb""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ class = ""Akka.Persistence.MongoDb.Journal.MongoDbJournal, Akka.Persistence.Mong
collection = ""EventJournal""
}
}
snapshot-store {
plugin = ""akka.persistence.snapshot-store.mongodb""
mongodb {
class = ""Akka.Persistence.MongoDb.Snapshot.MongoDbSnapshotStore, Akka.Persistence.MongoDb""
connection-string = """ + databaseFixture.ConnectionString + id + @"""
}
}
query {
mongodb {
class = ""Akka.Persistence.MongoDb.Query.MongoDbReadJournalProvider, Akka.Persistence.MongoDb""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,13 @@ class = ""Akka.Persistence.MongoDb.Journal.MongoDbJournal, Akka.Persistence.Mong
collection = ""EventJournal""
}
}
snapshot-store {
plugin = ""akka.persistence.snapshot-store.mongodb""
mongodb {
class = ""Akka.Persistence.MongoDb.Snapshot.MongoDbSnapshotStore, Akka.Persistence.MongoDb""
connection-string = """ + databaseFixture.ConnectionString + id + @"""
}
}
query {
mongodb {
class = ""Akka.Persistence.MongoDb.Query.MongoDbReadJournalProvider, Akka.Persistence.MongoDb""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,13 @@ class = ""Akka.Persistence.MongoDb.Journal.MongoDbJournal, Akka.Persistence.Mong
}
}
}
snapshot-store {
plugin = ""akka.persistence.snapshot-store.mongodb""
mongodb {
class = ""Akka.Persistence.MongoDb.Snapshot.MongoDbSnapshotStore, Akka.Persistence.MongoDb""
connection-string = """ + databaseFixture.ConnectionString + id + @"""
}
}
query {
mongodb {
class = ""Akka.Persistence.MongoDb.Query.MongoDbReadJournalProvider, Akka.Persistence.MongoDb""
Expand Down
7 changes: 7 additions & 0 deletions src/Akka.Persistence.MongoDb.Tests/MongoDbEventsByTagSpec.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,13 @@ class = ""Akka.Persistence.MongoDb.Journal.MongoDbJournal, Akka.Persistence.Mong
}
}
}
snapshot-store {
plugin = ""akka.persistence.snapshot-store.mongodb""
mongodb {
class = ""Akka.Persistence.MongoDb.Snapshot.MongoDbSnapshotStore, Akka.Persistence.MongoDb""
connection-string = """ + databaseFixture.ConnectionString + id + @"""
}
}
query {
mongodb {
class = ""Akka.Persistence.MongoDb.Query.MongoDbReadJournalProvider, Akka.Persistence.MongoDb""
Expand Down
3 changes: 2 additions & 1 deletion src/Akka.Persistence.MongoDb.Tests/MongoDbJournalPerfSpec.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ class = ""Akka.Persistence.MongoDb.Journal.MongoDbJournal, Akka.Persistence.Mong
}
}";

return ConfigurationFactory.ParseString(specString);
return ConfigurationFactory.ParseString(specString)
.WithFallback(MongoDbPersistence.DefaultConfiguration());
}
public static readonly AtomicCounter Counter = new AtomicCounter(0);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

namespace Akka.Persistence.MongoDb.Tests
{
[Collection("MongoDbSpec")]
public class MongoDbJournalSetupSpec : JournalSpec, IClassFixture<DatabaseFixture>
{
// TEST: MongoDb journal plugin set using Setup should behave exactly like when it is
Expand Down Expand Up @@ -55,7 +56,8 @@ class = ""Akka.Persistence.MongoDb.Journal.MongoDbJournal, Akka.Persistence.Mong
}
}";

return ConfigurationFactory.ParseString(specString);
return ConfigurationFactory.ParseString(specString)
.WithFallback(MongoDbPersistence.DefaultConfiguration());
}
}
}
3 changes: 2 additions & 1 deletion src/Akka.Persistence.MongoDb.Tests/MongoDbJournalSpec.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ class = ""Akka.Persistence.MongoDb.Journal.MongoDbJournal, Akka.Persistence.Mong
}
}";

return ConfigurationFactory.ParseString(specString);
return ConfigurationFactory.ParseString(specString)
.WithFallback(MongoDbPersistence.DefaultConfiguration());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ class = ""Akka.Persistence.MongoDb.Journal.MongoDbJournal, Akka.Persistence.Mong
}
}";

return ConfigurationFactory.ParseString(specString);
return ConfigurationFactory.ParseString(specString)
.WithFallback(MongoDbPersistence.DefaultConfiguration());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,36 +11,36 @@

namespace Akka.Persistence.MongoDb.Tests
{
// TODO: enable this spec once https://github.com/akkadotnet/akka.net/pull/4190 is available via Akka.NET v1.4.0-beta5 or higher
//[Collection("MongoDbSpec")]
//public class MongoDbLegacySerializationSnapshotStoreSpec : SnapshotStoreSpec, IClassFixture<DatabaseFixture>
//{
// protected override bool SupportsSerialization => false;
[Collection("MongoDbSpec")]
public class MongoDbLegacySerializationSnapshotStoreSpec : SnapshotStoreSpec, IClassFixture<DatabaseFixture>
{
protected override bool SupportsSerialization => false;

// public MongoDbLegacySerializationSnapshotStoreSpec(DatabaseFixture databaseFixture) : base(CreateSpecConfig(databaseFixture), "MongoDbSnapshotStoreSpec")
// {
// Initialize();
// }
public MongoDbLegacySerializationSnapshotStoreSpec(DatabaseFixture databaseFixture) : base(CreateSpecConfig(databaseFixture), "MongoDbSnapshotStoreSpec")
{
Initialize();
}

// private static Config CreateSpecConfig(DatabaseFixture databaseFixture)
// {
// var specString = @"
// akka.test.single-expect-default = 3s
// akka.persistence {
// publish-plugin-commands = on
// snapshot-store {
// plugin = ""akka.persistence.snapshot-store.mongodb""
// mongodb {
// class = ""Akka.Persistence.MongoDb.Snapshot.MongoDbSnapshotStore, Akka.Persistence.MongoDb""
// connection-string = """ + databaseFixture.ConnectionString + @"""
// auto-initialize = on
// collection = ""SnapshotStore""
// legacy-serialization = on
// }
// }
// }";
private static Config CreateSpecConfig(DatabaseFixture databaseFixture)
{
var specString = @"
akka.test.single-expect-default = 3s
akka.persistence {
publish-plugin-commands = on
snapshot-store {
plugin = ""akka.persistence.snapshot-store.mongodb""
mongodb {
class = ""Akka.Persistence.MongoDb.Snapshot.MongoDbSnapshotStore, Akka.Persistence.MongoDb""
connection-string = """ + databaseFixture.ConnectionString + @"""
auto-initialize = on
collection = ""SnapshotStore""
legacy-serialization = on
}
}
}";

// return ConfigurationFactory.ParseString(specString);
// }
//}
return ConfigurationFactory.ParseString(specString)
.WithFallback(MongoDbPersistence.DefaultConfiguration());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

namespace Akka.Persistence.MongoDb.Tests
{
[Collection("MongoDbSpec")]
public class MongoDbSnapshotStoreSetupSpec : SnapshotStoreSpec, IClassFixture<DatabaseFixture>
{
// TEST: MongoDb snapshot plugin set using Setup should behave exactly like when it is
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ class = ""Akka.Persistence.MongoDb.Journal.MongoDbJournal, Akka.Persistence.Mong
}
}";

return ConfigurationFactory.ParseString(specString);
return ConfigurationFactory.ParseString(specString)
.WithFallback(MongoDbPersistence.DefaultConfiguration());
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@
<ItemGroup>
<PackageReference Include="Akka.Persistence.Query" Version="$(AkkaVersion)" />
<PackageReference Include="akka.streams" Version="$(AkkaVersion)" />
<PackageReference Include="MongoDB.Driver" Version="2.15.0" />
<PackageReference Include="MongoDB.Driver" Version="2.15.1" />
</ItemGroup>
</Project>
15 changes: 10 additions & 5 deletions src/Akka.Persistence.MongoDb/Journal/MongoDbJournal.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
using Akka.Actor;
using Akka.Persistence.Journal;
using Akka.Persistence.MongoDb.Query;
using Akka.Streams.Dsl;
using Akka.Util;
using MongoDB.Bson;
using MongoDB.Driver;
Expand All @@ -19,6 +18,7 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Akka.Configuration;

namespace Akka.Persistence.MongoDb.Journal
{
Expand All @@ -43,12 +43,17 @@ public class MongoDbJournal : AsyncWriteJournal

private readonly Akka.Serialization.Serialization _serialization;

public MongoDbJournal()
{
_settings = MongoDbPersistence.Get(Context.System).JournalSettings;
public MongoDbJournal() : this(MongoDbPersistence.Get(Context.System).JournalSettings)
{ }

_serialization = Context.System.Serialization;
// This constructor is needed because config can come from both Akka.Persistence and Akka.Cluster.Sharding
public MongoDbJournal(Config config) : this(new MongoDbJournalSettings(config))
{ }

private MongoDbJournal(MongoDbJournalSettings settings)
{
_settings = settings;
_serialization = Context.System.Serialization;
}

protected override void PreStart()
Expand Down
12 changes: 9 additions & 3 deletions src/Akka.Persistence.MongoDb/Snapshot/MongoDbSnapshotStore.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using System;
using System.Threading;
using System.Threading.Tasks;
using Akka.Configuration;
using Akka.Persistence.Snapshot;
using Akka.Util;
using MongoDB.Driver;
Expand All @@ -26,10 +27,15 @@ public class MongoDbSnapshotStore : SnapshotStore

private readonly Akka.Serialization.Serialization _serialization;

public MongoDbSnapshotStore()
public MongoDbSnapshotStore() : this(MongoDbPersistence.Get(Context.System).SnapshotStoreSettings)
{ }

public MongoDbSnapshotStore(Config config) : this(new MongoDbSnapshotSettings(config))
{ }

public MongoDbSnapshotStore(MongoDbSnapshotSettings settings)
{
_settings = MongoDbPersistence.Get(Context.System).SnapshotStoreSettings;

_settings = settings;
_serialization = Context.System.Serialization;
}

Expand Down
4 changes: 2 additions & 2 deletions src/common.props
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
<NetStandardLibVersion>netstandard2.0</NetStandardLibVersion>

<XunitVersion>2.4.1</XunitVersion>
<TestSdkVersion>17.1.0</TestSdkVersion>
<AkkaVersion>1.4.37</AkkaVersion>
<TestSdkVersion>17.2.0</TestSdkVersion>
<AkkaVersion>1.4.38</AkkaVersion>
</PropertyGroup>
<!-- SourceLink support for all Akka.NET projects -->
<ItemGroup>
Expand Down

0 comments on commit 2609683

Please sign in to comment.