From ef5d2243e5b16ca6b56c9f9e0ee413175b004064 Mon Sep 17 00:00:00 2001 From: Ruben Bartelink Date: Fri, 12 Jun 2020 18:15:10 +0100 Subject: [PATCH 1/2] Support EventStore 20.06 --- src/Equinox.EventStore/Equinox.EventStore.fsproj | 2 +- src/Equinox.EventStore/EventStore.fs | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Equinox.EventStore/Equinox.EventStore.fsproj b/src/Equinox.EventStore/Equinox.EventStore.fsproj index 2072745a0..64c245fd1 100644 --- a/src/Equinox.EventStore/Equinox.EventStore.fsproj +++ b/src/Equinox.EventStore/Equinox.EventStore.fsproj @@ -25,7 +25,7 @@ - + diff --git a/src/Equinox.EventStore/EventStore.fs b/src/Equinox.EventStore/EventStore.fs index feef7ff7a..801e0fed0 100755 --- a/src/Equinox.EventStore/EventStore.fs +++ b/src/Equinox.EventStore/EventStore.fs @@ -210,7 +210,7 @@ module private Read = let! slice = readSlice pos batchLog match slice.Status with | SliceReadStatus.StreamDeleted -> raise <| EventStore.ClientAPI.Exceptions.StreamDeletedException(slice.Stream) - | SliceReadStatus.StreamNotFound -> yield Some (int64 ExpectedVersion.EmptyStream), Array.empty // EmptyStream must = -1 + | SliceReadStatus.StreamNotFound -> yield Some (int64 ExpectedVersion.NoStream), Array.empty // NoStream must = -1 | SliceReadStatus.Success -> let version = if batchCount = 0 then Some slice.LastEventNumber else None yield version, slice.Events @@ -641,7 +641,7 @@ type Discovery = // Allow Uri-based connection definition (discovery://, tcp:// or | Uri of Uri /// Supply a set of pre-resolved EndPoints instead of letting Gossip resolution derive from the DNS outcome - | GossipSeeded of seedManagerEndpoints : System.Net.IPEndPoint [] + | GossipSeeded of seedManagerEndpoints : System.Net.EndPoint [] // Standard Gossip-based discovery based on Dns query and standard manager port | GossipDns of clusterDns : string // Standard Gossip-based discovery based on Dns query (with manager port overriding default 30778) @@ -650,19 +650,19 @@ type Discovery = module private Discovery = let buildDns np (f : DnsClusterSettingsBuilder -> DnsClusterSettingsBuilder) = ClusterSettings.Create().DiscoverClusterViaDns().KeepDiscovering() - |> fun s -> match np with NodePreference.Random -> s.PreferRandomNode() | NodePreference.PreferSlave -> s.PreferSlaveNode() | _ -> s + |> fun s -> match np with NodePreference.Random -> s.PreferRandomNode() | NodePreference.PreferSlave -> s.PreferFollowerNode() | _ -> s |> f |> fun s -> s.Build() let buildSeeded np (f : GossipSeedClusterSettingsBuilder -> GossipSeedClusterSettingsBuilder) = ClusterSettings.Create().DiscoverClusterViaGossipSeeds().KeepDiscovering() - |> fun s -> match np with NodePreference.Random -> s.PreferRandomNode() | NodePreference.PreferSlave -> s.PreferSlaveNode() | _ -> s + |> fun s -> match np with NodePreference.Random -> s.PreferRandomNode() | NodePreference.PreferSlave -> s.PreferFollowerNode() | _ -> s |> f |> fun s -> s.Build() let configureDns clusterDns maybeManagerPort (x : DnsClusterSettingsBuilder) = x.SetClusterDns(clusterDns) |> fun s -> match maybeManagerPort with Some port -> s.SetClusterGossipPort(port) | None -> s - let inline configureSeeded (seedEndpoints : System.Net.IPEndPoint []) (x : GossipSeedClusterSettingsBuilder) = + let inline configureSeeded (seedEndpoints : System.Net.EndPoint []) (x : GossipSeedClusterSettingsBuilder) = x.SetGossipSeedEndPoints(seedEndpoints) // converts a Discovery mode to a ClusterSettings or a Uri as appropriate @@ -697,11 +697,11 @@ type Connector .LimitRetriesForOperationTo(reqRetries) // ES default: 10 |> fun s -> match node with - | NodePreference.Master -> s.PerformOnMasterOnly() // explicitly use ES default of requiring master, use default Node preference of Master + | NodePreference.Master -> s.PerformOnLeaderOnly() // explicitly use ES default of requiring master, use default Node preference of Master | NodePreference.PreferMaster -> s.PerformOnAnyNode() // override default [implied] PerformOnMasterOnly(), use default Node preference of Master - // NB .PreferSlaveNode/.PreferRandomNode setting is ignored if using EventStoreConneciton.Create(ConnectionSettings, ClusterSettings) overload but + // NB .PreferSlaveNode/.PreferRandomNode setting is ignored if using EventStoreConnection.Create(ConnectionSettings, ClusterSettings) overload but // this code is necessary for cases where people are using the discover :// and related URI schemes - | NodePreference.PreferSlave -> s.PerformOnAnyNode().PreferSlaveNode() // override default PerformOnMasterOnly(), override Master Node preference + | NodePreference.PreferSlave -> s.PerformOnAnyNode().PreferFollowerNode()// override default PerformOnMasterOnly(), override Master Node preference | NodePreference.Random -> s.PerformOnAnyNode().PreferRandomNode() // override default PerformOnMasterOnly(), override Master Node preference |> fun s -> match concurrentOperationsLimit with Some col -> s.LimitConcurrentOperationsTo(col) | None -> s // ES default: 5000 |> fun s -> match heartbeatTimeout with Some v -> s.SetHeartbeatTimeout v | None -> s // default: 1500 ms From 7ee0dddaa97736fad650bb2995bb0414d8e271bf Mon Sep 17 00:00:00 2001 From: Ruben Bartelink Date: Tue, 4 Aug 2020 13:30:59 +0100 Subject: [PATCH 2/2] changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 76e49a29e..0a90f574f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,8 @@ The `Unreleased` section name is replaced by the expected version of next releas ### Added -- now targets `Microsoft.Azure.Cosmos` v `3.9.0` (instead of `Microsoft.Azure.DocumentDB`[`.Core`] v 2.x) [#144](https://github.com/jet/equinox/pull/144) +- targets `Microsoft.Azure.Cosmos` v `3.9.0` (instead of `Microsoft.Azure.DocumentDB`[`.Core`] v 2.x) [#144](https://github.com/jet/equinox/pull/144) +- targets `EventStore.Client` v `20.6` (instead of v `5.0.x`) [#224](https://github.com/jet/equinox/pull/224) ### Changed