Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 0f21e7a

Browse files
committed
Correction to hedged reads deprecation
1 parent 5631692 commit 0f21e7a

File tree

7 files changed

+52
-1
lines changed

7 files changed

+52
-1
lines changed

‎src/MongoDB.Driver/Core/Misc/Feature.cs‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,6 @@ public class Feature
311311
/// <summary>
312312
/// Gets the hedged reads feature.
313313
/// </summary>
314-
[Obsolete("This property will be removed in a later release.")]
315314
public static Feature HedgedReads => __hedgedReads;
316315

317316
/// <summary>

‎src/MongoDB.Driver/Core/Operations/QueryHelper.cs‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,9 @@ public static BsonDocument CreateReadPreferenceDocument(ServerType serverType, R
6969

7070
case ReadPreferenceMode.SecondaryPreferred:
7171
var hasTagSets = readPreference.TagSets != null && readPreference.TagSets.Count > 0;
72+
#pragma warning disable CS0618 // Type or member is obsolete
7273
if (!hasTagSets && !readPreference.MaxStaleness.HasValue && readPreference.Hedge == null)
74+
#pragma warning restore CS0618 // Type or member is obsolete
7375
{
7476
return null;
7577
}
@@ -100,7 +102,9 @@ public static BsonDocument CreateReadPreferenceDocument(ReadPreference readPrefe
100102
{ "mode", modeString },
101103
{ "tags", tagSets, tagSets != null },
102104
{ "maxStalenessSeconds", () => (int)readPreference.MaxStaleness.Value.TotalSeconds, readPreference.MaxStaleness.HasValue },
105+
#pragma warning disable CS0618 // Type or member is obsolete
103106
{ "hedge", () => readPreference.Hedge.ToBsonDocument(), readPreference.Hedge != null }
107+
#pragma warning restore CS0618 // Type or member is obsolete
104108
};
105109
}
106110
}

‎src/MongoDB.Driver/Core/ReadPreference.cs‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,9 @@ public static ReadPreference FromBsonDocument(BsonDocument document)
104104
ReadPreferenceMode mode = ReadPreferenceMode.Primary;
105105
TimeSpan? maxStaleness = null;
106106
List<TagSet> tagSets = null;
107+
#pragma warning disable CS0618 // Type or member is obsolete
107108
ReadPreferenceHedge hedge = null;
109+
#pragma warning restore CS0618 // Type or member is obsolete
108110

109111
foreach (var element in document)
110112
{
@@ -144,7 +146,9 @@ public static ReadPreference FromBsonDocument(BsonDocument document)
144146

145147
case "hedge":
146148
var hedgeEnabled = element.Value.AsBsonDocument["enabled"].AsBoolean;
149+
#pragma warning disable CS0618 // Type or member is obsolete
147150
hedge = new ReadPreferenceHedge(hedgeEnabled);
151+
#pragma warning restore CS0618 // Type or member is obsolete
148152
break;
149153

150154
default:
@@ -157,7 +161,9 @@ public static ReadPreference FromBsonDocument(BsonDocument document)
157161
#endregion
158162

159163
// fields
164+
#pragma warning disable CS0618 // Type or member is obsolete
160165
private readonly ReadPreferenceHedge _hedge;
166+
#pragma warning restore CS0618 // Type or member is obsolete
161167
private readonly TimeSpan? _maxStaleness;
162168
private readonly ReadPreferenceMode _mode;
163169
private readonly IReadOnlyList<TagSet> _tagSets;
@@ -174,7 +180,9 @@ public ReadPreference(
174180
ReadPreferenceMode mode,
175181
IEnumerable<TagSet> tagSets = null,
176182
TimeSpan? maxStaleness = null,
183+
#pragma warning disable CS0618 // Type or member is obsolete
177184
ReadPreferenceHedge hedge = null)
185+
#pragma warning restore CS0618 // Type or member is obsolete
178186
{
179187
var tagSetsArray = tagSets == null ? __emptyTagSetsArray : tagSets.ToArray();
180188
if (tagSetsArray.Length > 0)
@@ -207,6 +215,7 @@ public ReadPreference(
207215
/// <summary>
208216
/// Gets the hedge.
209217
/// </summary>
218+
[Obsolete("Hedged reads are deprecated starting in server version 8.0.")]
210219
public ReadPreferenceHedge Hedge => _hedge;
211220

212221
/// <summary>
@@ -306,6 +315,7 @@ public override string ToString()
306315
/// </summary>
307316
/// <param name="hedge">The hedge.</param>
308317
/// <returns>A new instance of ReadPreference.</returns>
318+
[Obsolete("Hedged reads are deprecated starting in server version 8.0.")]
309319
public ReadPreference With(ReadPreferenceHedge hedge)
310320
{
311321
return new ReadPreference(_mode, _tagSets, _maxStaleness, hedge);

‎src/MongoDB.Driver/Core/ReadPreferenceHedge.cs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ namespace MongoDB.Driver
2121
/// <summary>
2222
/// Represents a read preference hedge.
2323
/// </summary>
24+
[Obsolete("Hedged reads are deprecated starting in server version 8.0.")]
2425
public sealed class ReadPreferenceHedge : IEquatable<ReadPreferenceHedge>
2526
{
2627
#region static

‎tests/MongoDB.Driver.Tests/Core/Operations/QueryHelperTests.cs‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,10 @@ public void CreateReadPreferenceDocument_should_return_expected_result_when_hedg
102102
bool? isEnabled,
103103
string expectedResult)
104104
{
105+
#pragma warning disable CS0618 // Type or member is obsolete
105106
var hedge = isEnabled.HasValue ? new ReadPreferenceHedge(isEnabled.Value) : null;
106107
var readPreference = ReadPreference.Secondary.With(hedge: hedge);
108+
#pragma warning restore CS0618 // Type or member is obsolete
107109

108110
var result = QueryHelper.CreateReadPreferenceDocument(ServerType.ShardRouter, readPreference, out var secondaryOk);
109111

‎tests/MongoDB.Driver.Tests/Core/ReadPreferenceHedgeTests.cs‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
namespace MongoDB.Driver.Core.Tests
2121
{
22+
#pragma warning disable CS0618 // Type or member is obsolete
2223
public class ReadPreferenceHedgeTests
2324
{
2425
[Fact]
@@ -126,4 +127,5 @@ public void ToString_should_return_expected_result(bool isEnabled, string expect
126127
result.Should().Be(expectedResult);
127128
}
128129
}
130+
#pragma warning restore CS0618 // Type or member is obsolete
129131
}

‎tests/MongoDB.Driver.Tests/Core/ReadPreferenceTests.cs‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,9 @@ public void FromBsonDocument_should_parse_hedge(string document, bool expectedIs
106106
{
107107
var result = ReadPreference.FromBsonDocument(BsonDocument.Parse(document));
108108

109+
#pragma warning disable CS0618 // Type or member is obsolete
109110
result.Hedge.IsEnabled.Should().Be(expectedIsEnabled);
111+
#pragma warning restore CS0618 // Type or member is obsolete
110112
}
111113

112114
[Fact]
@@ -141,7 +143,9 @@ public void constructor_should_throw_when_maxStaleness_is_not_null_and_mode_is_p
141143
[Fact]
142144
public void constructor_should_throw_when_hedge_is_not_null_and_mode_is_primary()
143145
{
146+
#pragma warning disable CS0618 // Type or member is obsolete
144147
var hedge = new ReadPreferenceHedge(true);
148+
#pragma warning restore CS0618 // Type or member is obsolete
145149

146150
var exception = Record.Exception(() => new ReadPreference(ReadPreferenceMode.Primary, hedge: hedge));
147151

@@ -159,7 +163,9 @@ public void constructor_with_mode_should_initialize_instance()
159163
result.ReadPreferenceMode.Should().Be(mode);
160164
result.TagSets.Should().BeEmpty();
161165
result.MaxStaleness.Should().NotHaveValue();
166+
#pragma warning disable CS0618 // Type or member is obsolete
162167
result.Hedge.Should().BeNull();
168+
#pragma warning restore CS0618 // Type or member is obsolete
163169
}
164170

165171
[Fact]
@@ -174,7 +180,9 @@ public void constructor_with_tagSets_should_initialize_instance()
174180
result.TagSets.Should().NotBeSameAs(tagSets);
175181
result.TagSets.Should().Equal(tagSets);
176182
result.MaxStaleness.Should().NotHaveValue();
183+
#pragma warning disable CS0618 // Type or member is obsolete
177184
result.Hedge.Should().BeNull();
185+
#pragma warning restore CS0618 // Type or member is obsolete
178186
}
179187

180188
[Fact]
@@ -185,7 +193,9 @@ public void constructor_with_tagSets_should_initialize_instance_when_tagSets_is_
185193
result.ReadPreferenceMode.Should().Be(ReadPreferenceMode.Secondary);
186194
result.TagSets.Should().BeEmpty();
187195
result.MaxStaleness.Should().NotHaveValue();
196+
#pragma warning disable CS0618 // Type or member is obsolete
188197
result.Hedge.Should().BeNull();
198+
#pragma warning restore CS0618 // Type or member is obsolete
189199
}
190200

191201
[Fact]
@@ -197,7 +207,9 @@ public void constructor_with_maxStaleness_should_initialize_instance()
197207
result.ReadPreferenceMode.Should().Be(ReadPreferenceMode.Secondary);
198208
result.TagSets.Should().BeEmpty();
199209
result.MaxStaleness.Should().Be(maxStaleness);
210+
#pragma warning disable CS0618 // Type or member is obsolete
200211
result.Hedge.Should().BeNull();
212+
#pragma warning restore CS0618 // Type or member is obsolete
201213
}
202214

203215
[Theory]
@@ -206,6 +218,7 @@ public void constructor_with_hedge_should_initialize_instance(
206218
[Values(null, false, true)]
207219
bool? isEnabled)
208220
{
221+
#pragma warning disable CS0618 // Type or member is obsolete
209222
var hedge = isEnabled.HasValue ? new ReadPreferenceHedge(isEnabled.Value) : null;
210223

211224
var result = new ReadPreference(ReadPreferenceMode.Secondary, hedge: hedge);
@@ -214,6 +227,7 @@ public void constructor_with_hedge_should_initialize_instance(
214227
result.TagSets.Should().BeEmpty();
215228
result.MaxStaleness.Should().NotHaveValue();
216229
result.Hedge.Should().BeSameAs(hedge);
230+
#pragma warning restore CS0618 // Type or member is obsolete
217231
}
218232

219233
[Fact]
@@ -224,7 +238,9 @@ public void constructor_with_maxStaleness_should_initialize_instance_when_value_
224238
result.ReadPreferenceMode.Should().Be(ReadPreferenceMode.Secondary);
225239
result.TagSets.Should().BeEmpty();
226240
result.MaxStaleness.Should().NotHaveValue();
241+
#pragma warning disable CS0618 // Type or member is obsolete
227242
result.Hedge.Should().BeNull();
243+
#pragma warning restore CS0618 // Type or member is obsolete
228244
}
229245

230246
[Theory]
@@ -253,8 +269,10 @@ public void Equals_should_compare_maxStaleness_fields(
253269
[InlineData(true, true, true)]
254270
public void Equals_should_compare_hedge_fields(bool? lhsEnabled, bool? rhsEnabled, bool expectedResult)
255271
{
272+
#pragma warning disable CS0618 // Type or member is obsolete
256273
var lhsHedge = lhsEnabled.HasValue ? new ReadPreferenceHedge(lhsEnabled.Value) : null;
257274
var rhsHedge = rhsEnabled.HasValue ? new ReadPreferenceHedge(rhsEnabled.Value) : null;
275+
#pragma warning restore CS0618 // Type or member is obsolete
258276
var lhs = new ReadPreference(ReadPreferenceMode.Secondary, hedge: lhsHedge);
259277
var rhs = new ReadPreference(ReadPreferenceMode.Secondary, hedge: rhsHedge);
260278

@@ -299,7 +317,9 @@ public void Nearest_should_return_expected_result()
299317
result.ReadPreferenceMode.Should().Be(ReadPreferenceMode.Nearest);
300318
result.TagSets.Count.Should().Be(0);
301319
result.MaxStaleness.Should().NotHaveValue();
320+
#pragma warning disable CS0618 // Type or member is obsolete
302321
result.Hedge.Should().BeNull();
322+
#pragma warning restore CS0618 // Type or member is obsolete
303323
}
304324

305325
[Fact]
@@ -310,7 +330,9 @@ public void Primary_should_return_expected_result()
310330
result.ReadPreferenceMode.Should().Be(ReadPreferenceMode.Primary);
311331
result.TagSets.Count.Should().Be(0);
312332
result.MaxStaleness.Should().NotHaveValue();
333+
#pragma warning disable CS0618 // Type or member is obsolete
313334
result.Hedge.Should().BeNull();
335+
#pragma warning restore CS0618 // Type or member is obsolete
314336
}
315337

316338
[Fact]
@@ -321,7 +343,9 @@ public void PrimaryPreferred_should_return_expected_result()
321343
result.ReadPreferenceMode.Should().Be(ReadPreferenceMode.PrimaryPreferred);
322344
result.TagSets.Count.Should().Be(0);
323345
result.MaxStaleness.Should().NotHaveValue();
346+
#pragma warning disable CS0618 // Type or member is obsolete
324347
result.Hedge.Should().BeNull();
348+
#pragma warning restore CS0618 // Type or member is obsolete
325349
}
326350

327351
[Fact]
@@ -332,7 +356,9 @@ public void Secondary_should_return_expected_result()
332356
result.ReadPreferenceMode.Should().Be(ReadPreferenceMode.Secondary);
333357
result.TagSets.Count.Should().Be(0);
334358
result.MaxStaleness.Should().NotHaveValue();
359+
#pragma warning disable CS0618 // Type or member is obsolete
335360
result.Hedge.Should().BeNull();
361+
#pragma warning restore CS0618 // Type or member is obsolete
336362
}
337363

338364
[Fact]
@@ -343,7 +369,9 @@ public void SecondaryPreferred_should_return_expected_result()
343369
result.ReadPreferenceMode.Should().Be(ReadPreferenceMode.SecondaryPreferred);
344370
result.TagSets.Count.Should().Be(0);
345371
result.MaxStaleness.Should().NotHaveValue();
372+
#pragma warning disable CS0618 // Type or member is obsolete
346373
result.Hedge.Should().BeNull();
374+
#pragma warning restore CS0618 // Type or member is obsolete
347375
}
348376

349377
[Theory]
@@ -408,7 +436,9 @@ public void ToString_should_return_expected_result_when_maxStaleness_is_set(
408436
[InlineData(true, "{ Mode : Secondary, Hedge : { \"enabled\" : true } }")]
409437
public void ToString_should_return_expected_result_when_hedge_is_set(bool? isEnabled, string expectedResult)
410438
{
439+
#pragma warning disable CS0618 // Type or member is obsolete
411440
var hedge = isEnabled.HasValue ? new ReadPreferenceHedge(isEnabled.Value) : null;
441+
#pragma warning restore CS0618 // Type or member is obsolete
412442
var subject = new ReadPreference(ReadPreferenceMode.Secondary, hedge: hedge);
413443

414444
var result = subject.ToString();
@@ -424,6 +454,7 @@ public void With_hedge_should_return_expected_result(
424454
[Values(false, true)]
425455
bool isEnabled)
426456
{
457+
#pragma warning disable CS0618 // Type or member is obsolete
427458
var originalHedge = new ReadPreferenceHedge(isEnabled: originalIsEnabled);
428459
var hedge = new ReadPreferenceHedge(isEnabled: isEnabled);
429460
var subject = new ReadPreference(ReadPreferenceMode.Secondary, hedge: originalHedge);
@@ -432,6 +463,8 @@ public void With_hedge_should_return_expected_result(
432463

433464
result.Hedge.Should().Be(hedge);
434465
result.With(originalHedge).Should().Be(subject);
466+
#pragma warning restore CS0618 // Type or member is obsolete
467+
435468
}
436469

437470
[Theory]

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /