Skip to content

Commit 7385735

Browse files
authored
fix: remove Microsoft.Extensions.Logging from flagd provider (#233)
Signed-off-by: ghelyar <[email protected]>
1 parent 19862d8 commit 7385735

File tree

4 files changed

+23
-75
lines changed

4 files changed

+23
-75
lines changed

src/OpenFeature.Contrib.Providers.Flagd/OpenFeature.Contrib.Providers.Flagd.csproj

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@
2323
<!-- The schema.proto file referenced here will be used to automatically generate the Grpc client when executing 'dotnet build' -->
2424
<!-- The generated files will be placed in ./obj/Debug/netstandard2.0/Protos -->
2525
<PackageReference Include="JsonLogic.Net" Version="1.1.11" />
26-
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
27-
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
28-
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
2926
<PackageReference Include="murmurhash" Version="1.0.3" />
3027
<PackageReference Include="Semver" Version="2.3.0" />
3128
<Protobuf Include="schemas\protobuf\flagd\evaluation\v1\evaluation.proto" GrpcServices="Client" />

src/OpenFeature.Contrib.Providers.Flagd/Resolver/InProcess/CustomEvaluators/FractionalEvaluator.cs

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using System.Linq;
44
using System.Text;
55
using JsonLogic.Net;
6-
using Microsoft.Extensions.Logging;
76
using Murmur;
87
using Newtonsoft.Json.Linq;
98
using Semver;
@@ -13,21 +12,8 @@ namespace OpenFeature.Contrib.Providers.Flagd.Resolver.InProcess.CustomEvaluator
1312
/// <inheritdoc/>
1413
public class FractionalEvaluator
1514
{
16-
17-
internal ILogger Logger { get; set; }
18-
1915
internal FractionalEvaluator()
2016
{
21-
var loggerFactory = LoggerFactory.Create(
22-
builder => builder
23-
// add console as logging target
24-
.AddConsole()
25-
// add debug output as logging target
26-
.AddDebug()
27-
// set minimum level to log
28-
.SetMinimumLevel(LogLevel.Debug)
29-
);
30-
Logger = loggerFactory.CreateLogger<FractionalEvaluator>();
3117
}
3218

3319
class FractionalEvaluationDistribution
@@ -118,7 +104,6 @@ internal object Evaluate(IProcessJsonLogic p, JToken[] args, object data)
118104
}
119105
}
120106

121-
Logger.LogDebug("No matching bucket found");
122107
return "";
123108
}
124109
}

src/OpenFeature.Contrib.Providers.Flagd/Resolver/InProcess/CustomEvaluators/SemVerEvaluator.cs

Lines changed: 23 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
using System;
22
using JsonLogic.Net;
3-
using Microsoft.Extensions.Logging;
4-
using Microsoft.Extensions.Logging.Abstractions;
53
using Newtonsoft.Json.Linq;
64
using Semver;
75

@@ -10,23 +8,10 @@ namespace OpenFeature.Contrib.Providers.Flagd.Resolver.InProcess.CustomEvaluator
108
/// <inheritdoc/>
119
public class SemVerEvaluator
1210
{
13-
internal ILogger Logger { get; set; }
14-
1511
internal SemVerEvaluator()
1612
{
17-
var loggerFactory = LoggerFactory.Create(
18-
builder => builder
19-
// add console as logging target
20-
.AddConsole()
21-
// add debug output as logging target
22-
.AddDebug()
23-
// set minimum level to log
24-
.SetMinimumLevel(LogLevel.Debug)
25-
);
26-
Logger = loggerFactory.CreateLogger<SemVerEvaluator>();
2713
}
2814

29-
3015
const string OperatorEqual = "=";
3116
const string OperatorNotEqual = "!=";
3217
const string OperatorLess = "<";
@@ -53,37 +38,32 @@ internal object Evaluate(IProcessJsonLogic p, JToken[] args, object data)
5338
var targetVersionString = p.Apply(args[2], data).ToString();
5439

5540
//convert to semantic versions
56-
try
41+
if (!SemVersion.TryParse(versionString, SemVersionStyles.Strict, out var version) ||
42+
!SemVersion.TryParse(targetVersionString, SemVersionStyles.Strict, out var targetVersion))
5743
{
58-
var version = SemVersion.Parse(versionString, SemVersionStyles.Strict);
59-
var targetVersion = SemVersion.Parse(targetVersionString, SemVersionStyles.Strict);
60-
61-
switch (semVerOperator)
62-
{
63-
case OperatorEqual:
64-
return version.CompareSortOrderTo(targetVersion) == 0;
65-
case OperatorNotEqual:
66-
return version.CompareSortOrderTo(targetVersion) != 0;
67-
case OperatorLess:
68-
return version.CompareSortOrderTo(targetVersion) < 0;
69-
case OperatorLessOrEqual:
70-
return version.CompareSortOrderTo(targetVersion) <= 0;
71-
case OperatorGreater:
72-
return version.CompareSortOrderTo(targetVersion) > 0;
73-
case OperatorGreaterOrEqual:
74-
return version.CompareSortOrderTo(targetVersion) >= 0;
75-
case OperatorMatchMajor:
76-
return version.Major == targetVersion.Major;
77-
case OperatorMatchMinor:
78-
return version.Major == targetVersion.Major && version.Minor == targetVersion.Minor;
79-
default:
80-
return false;
81-
}
44+
return false;
8245
}
83-
catch (Exception e)
46+
47+
switch (semVerOperator)
8448
{
85-
Logger?.LogDebug("Exception during SemVer evaluation: " + e.Message);
86-
return false;
49+
case OperatorEqual:
50+
return version.CompareSortOrderTo(targetVersion) == 0;
51+
case OperatorNotEqual:
52+
return version.CompareSortOrderTo(targetVersion) != 0;
53+
case OperatorLess:
54+
return version.CompareSortOrderTo(targetVersion) < 0;
55+
case OperatorLessOrEqual:
56+
return version.CompareSortOrderTo(targetVersion) <= 0;
57+
case OperatorGreater:
58+
return version.CompareSortOrderTo(targetVersion) > 0;
59+
case OperatorGreaterOrEqual:
60+
return version.CompareSortOrderTo(targetVersion) >= 0;
61+
case OperatorMatchMajor:
62+
return version.Major == targetVersion.Major;
63+
case OperatorMatchMinor:
64+
return version.Major == targetVersion.Major && version.Minor == targetVersion.Minor;
65+
default:
66+
return false;
8767
}
8868
}
8969
}

src/OpenFeature.Contrib.Providers.Flagd/Resolver/InProcess/CustomEvaluators/StringEvaluator.cs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
using System;
22
using System.Runtime.InteropServices;
33
using JsonLogic.Net;
4-
using Microsoft.Extensions.Logging;
5-
using Microsoft.Extensions.Logging.Abstractions;
64
using Newtonsoft.Json.Linq;
75
using OpenFeature.Error;
86
using OpenFeature.Model;
@@ -11,20 +9,8 @@ namespace OpenFeature.Contrib.Providers.Flagd.Resolver.InProcess.CustomEvaluator
119
{
1210
internal class StringEvaluator
1311
{
14-
internal ILogger Logger { get; set; }
15-
1612
internal StringEvaluator()
1713
{
18-
var loggerFactory = LoggerFactory.Create(
19-
builder => builder
20-
// add console as logging target
21-
.AddConsole()
22-
// add debug output as logging target
23-
.AddDebug()
24-
// set minimum level to log
25-
.SetMinimumLevel(LogLevel.Debug)
26-
);
27-
Logger = loggerFactory.CreateLogger<StringEvaluator>();
2814
}
2915

3016
internal object StartsWith(IProcessJsonLogic p, JToken[] args, object data)

0 commit comments

Comments
 (0)