Skip to content

Commit 060b1b6

Browse files
authored
Merge pull request #48 from skbkontur/skvortsov.m/EDITSKS-5515/migrate-to-system-text-json
EDITSKS-5515: migrate to system.text.json
2 parents 1831b5e + b9a5662 commit 060b1b6

File tree

50 files changed

+1397
-1471
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1397
-1471
lines changed

.github/workflows/actions.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
run: dotnet jb cleanupcode Cassandra.DistributedTaskQueue.sln --profile=CatalogueCleanup --verbosity=WARN && git diff --exit-code -- ':!./cassandra-distributed-task-queue-ui/.yarn'
4141
- name: Check front code
4242
run: yarn --cwd cassandra-distributed-task-queue-ui lint
43-
- name: Build docker compose environment
43+
- name: Build docker-compose environment
4444
run: docker compose -f docker-compose.yaml up -d --build
4545
env:
4646
ES_VERSION: ${{ matrix.es-version }}
@@ -50,7 +50,7 @@ jobs:
5050
run: dotnet test --no-build --configuration Release
5151
env:
5252
ES_VERSION: ${{ matrix.es-version }}
53-
- name: Stop docker compose
53+
- name: Stop
5454
if: always()
5555
run: docker compose -f docker-compose.yaml down
5656
env:

.start-all.cmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
wsl -u root sh -c "service docker status || (service docker start && echo 'artificially waiting 20s for docker to warmup...' && sleep 20s)"
2-
wsl docker-compose -f docker-compose.linux.yaml up -d --build
2+
wsl docker compose -f docker-compose.linux.yaml up -d --build

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Changelog
22

3+
## v3.4.0 - 2025.06.04
4+
- Migrate backend to System.Text.Json
5+
36
## v3.3.0 - 2025.05.28
47
- Update react-ui
58
- Update edi-ui

Cassandra.DistributedTaskQueue.Monitoring.TestService/Cassandra.DistributedTaskQueue.Monitoring.TestService.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.16" />
1312
<PackageReference Include="SkbKontur.TypeScript.ContractGenerator" Version="2.0.131" />
1413
</ItemGroup>
1514

Cassandra.DistributedTaskQueue.Monitoring.TestService/Startup.cs

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,22 @@
66

77
using SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Json;
88

9-
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.TestService
9+
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.TestService;
10+
11+
public class Startup
1012
{
11-
public class Startup
13+
public void ConfigureServices(IServiceCollection services)
1214
{
13-
public void ConfigureServices(IServiceCollection services)
14-
{
15-
services.AddControllers().AddNewtonsoftJson(options => options.SerializerSettings.Converters.Add(new LongToStringConverter()));
16-
services.AddSingleton<IControllerFactory>(new GroboControllerFactory());
17-
}
15+
services.AddControllers().AddJsonOptions(options => options.JsonSerializerOptions.Converters.Add(new LongToStringConverter()));
16+
services.AddSingleton<IControllerFactory>(new GroboControllerFactory());
17+
}
1818

19-
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
20-
{
21-
if (env.IsDevelopment())
22-
app.UseDeveloperExceptionPage();
19+
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
20+
{
21+
if (env.IsDevelopment())
22+
app.UseDeveloperExceptionPage();
2323

24-
app.UseRouting();
25-
app.UseEndpoints(endpoints => endpoints.MapControllers());
26-
}
24+
app.UseRouting();
25+
app.UseEndpoints(endpoints => endpoints.MapControllers());
2726
}
2827
}
Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,32 @@
1-
using JetBrains.Annotations;
1+
using System.Text.Json.Serialization;
22

3-
using Newtonsoft.Json;
3+
using JetBrains.Annotations;
44

55
using SkbKontur.Cassandra.DistributedTaskQueue.Cassandra.Entities;
66

7-
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api
7+
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api;
8+
9+
public class RtqMonitoringSearchRequest
810
{
9-
public class RtqMonitoringSearchRequest
10-
{
11-
[NotNull]
12-
[JsonProperty("enqueueTimestampRange")]
13-
public TimestampRange EnqueueTimestampRange { get; set; }
14-
15-
[CanBeNull]
16-
[JsonProperty("queryString")]
17-
public string QueryString { get; set; }
18-
19-
[CanBeNull]
20-
[JsonProperty("states")]
21-
public TaskState[] States { get; set; }
22-
23-
[CanBeNull, ItemNotNull]
24-
[JsonProperty("names")]
25-
public string[] Names { get; set; }
26-
27-
[JsonProperty("offset")]
28-
public int? Offset { get; set; }
29-
30-
[JsonProperty("count")]
31-
public int? Count { get; set; }
32-
}
11+
[NotNull]
12+
[JsonPropertyName("enqueueTimestampRange")]
13+
public TimestampRange EnqueueTimestampRange { get; set; }
14+
15+
[CanBeNull]
16+
[JsonPropertyName("queryString")]
17+
public string QueryString { get; set; }
18+
19+
[CanBeNull]
20+
[JsonPropertyName("states")]
21+
public TaskState[] States { get; set; }
22+
23+
[CanBeNull, ItemNotNull]
24+
[JsonPropertyName("names")]
25+
public string[] Names { get; set; }
26+
27+
[JsonPropertyName("offset")]
28+
public int? Offset { get; set; }
29+
30+
[JsonPropertyName("count")]
31+
public int? Count { get; set; }
3332
}
Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
using JetBrains.Annotations;
1+
using System.Text.Json.Serialization;
22

3-
using Newtonsoft.Json;
3+
using JetBrains.Annotations;
44

5-
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api
5+
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api;
6+
7+
public class RtqMonitoringSearchResults
68
{
7-
public class RtqMonitoringSearchResults
8-
{
9-
[JsonProperty("totalCount")]
10-
public long TotalCount { get; set; }
9+
[JsonPropertyName("totalCount")]
10+
public long TotalCount { get; set; }
1111

12-
[NotNull, ItemNotNull]
13-
[JsonProperty("taskMetas")]
14-
public RtqMonitoringTaskMeta[] TaskMetas { get; set; }
15-
}
12+
[NotNull, ItemNotNull]
13+
[JsonPropertyName("taskMetas")]
14+
public RtqMonitoringTaskMeta[] TaskMetas { get; set; } = null!;
1615
}
Lines changed: 58 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,65 @@
1-
using JetBrains.Annotations;
1+
using System.Text.Json.Serialization;
22

3-
using Newtonsoft.Json;
4-
using Newtonsoft.Json.Converters;
3+
using JetBrains.Annotations;
54

65
using SkbKontur.Cassandra.DistributedTaskQueue.Cassandra.Entities;
76
using SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Json;
87

9-
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api
8+
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api;
9+
10+
public class RtqMonitoringTaskMeta
1011
{
11-
public class RtqMonitoringTaskMeta
12-
{
13-
[NotNull]
14-
[JsonProperty("name")]
15-
public string Name { get; set; }
16-
17-
[NotNull]
18-
[JsonProperty("id")]
19-
public string Id { get; set; }
20-
21-
[JsonProperty("ticks")]
22-
[JsonConverter(typeof(LongToStringConverter))]
23-
public long Ticks { get; set; }
24-
25-
[JsonProperty("minimalStartTicks")]
26-
[JsonConverter(typeof(LongToStringConverter))]
27-
public long MinimalStartTicks { get; set; }
28-
29-
[JsonProperty("startExecutingTicks")]
30-
[JsonConverter(typeof(LongToStringConverter))]
31-
public long? StartExecutingTicks { get; set; }
32-
33-
[JsonProperty("finishExecutingTicks")]
34-
[JsonConverter(typeof(LongToStringConverter))]
35-
public long? FinishExecutingTicks { get; set; }
36-
37-
[JsonProperty("lastModificationTicks")]
38-
[JsonConverter(typeof(LongToStringConverter))]
39-
public long? LastModificationTicks { get; set; }
40-
41-
[JsonProperty("expirationTimestampTicks")]
42-
[JsonConverter(typeof(LongToStringConverter))]
43-
public long? ExpirationTimestampTicks { get; set; }
44-
45-
[JsonProperty("expirationModificationTicks")]
46-
[JsonConverter(typeof(LongToStringConverter))]
47-
public long? ExpirationModificationTicks { get; set; }
48-
49-
[JsonProperty("executionDurationTicks")]
50-
[JsonConverter(typeof(LongToStringConverter))]
51-
public long? ExecutionDurationTicks { get; set; }
52-
53-
[JsonProperty("state")]
54-
[JsonConverter(typeof(StringEnumConverter))]
55-
public TaskState State { get; set; }
56-
57-
[CanBeNull]
58-
[JsonProperty("taskActions")]
59-
public TaskActions TaskActions { get; set; }
60-
61-
[JsonProperty("attempts")]
62-
public int Attempts { get; set; }
63-
64-
[JsonProperty("parentTaskId")]
65-
public string ParentTaskId { get; set; }
66-
}
12+
[NotNull]
13+
[JsonPropertyName("name")]
14+
public string Name { get; set; } = null!;
15+
16+
[NotNull]
17+
[JsonPropertyName("id")]
18+
public string Id { get; set; } = null!;
19+
20+
[JsonPropertyName("ticks")]
21+
[JsonConverter(typeof(LongToStringConverter))]
22+
public long Ticks { get; set; }
23+
24+
[JsonPropertyName("minimalStartTicks")]
25+
[JsonConverter(typeof(LongToStringConverter))]
26+
public long MinimalStartTicks { get; set; }
27+
28+
[JsonPropertyName("startExecutingTicks")]
29+
[JsonConverter(typeof(LongToStringConverter))]
30+
public long? StartExecutingTicks { get; set; }
31+
32+
[JsonPropertyName("finishExecutingTicks")]
33+
[JsonConverter(typeof(LongToStringConverter))]
34+
public long? FinishExecutingTicks { get; set; }
35+
36+
[JsonPropertyName("lastModificationTicks")]
37+
[JsonConverter(typeof(LongToStringConverter))]
38+
public long? LastModificationTicks { get; set; }
39+
40+
[JsonPropertyName("expirationTimestampTicks")]
41+
[JsonConverter(typeof(LongToStringConverter))]
42+
public long? ExpirationTimestampTicks { get; set; }
43+
44+
[JsonPropertyName("expirationModificationTicks")]
45+
[JsonConverter(typeof(LongToStringConverter))]
46+
public long? ExpirationModificationTicks { get; set; }
47+
48+
[JsonPropertyName("executionDurationTicks")]
49+
[JsonConverter(typeof(LongToStringConverter))]
50+
public long? ExecutionDurationTicks { get; set; }
51+
52+
[JsonPropertyName("state")]
53+
[JsonConverter(typeof(JsonStringEnumConverter))]
54+
public TaskState State { get; set; }
55+
56+
[CanBeNull]
57+
[JsonPropertyName("taskActions")]
58+
public TaskActions TaskActions { get; set; }
59+
60+
[JsonPropertyName("attempts")]
61+
public int Attempts { get; set; }
62+
63+
[JsonPropertyName("parentTaskId")]
64+
public string ParentTaskId { get; set; }
6765
}
Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,30 @@
11
using JetBrains.Annotations;
22

3-
using Newtonsoft.Json;
3+
using System.Text.Json.Serialization;
44

55
using SkbKontur.Cassandra.DistributedTaskQueue.Handling;
66
using SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Json;
77

8-
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api
8+
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api;
9+
10+
public class RtqMonitoringTaskModel
911
{
10-
public class RtqMonitoringTaskModel
11-
{
12-
public static RtqMonitoringTaskModel Empty => new RtqMonitoringTaskModel();
13-
14-
[NotNull]
15-
[JsonProperty("taskMeta")]
16-
public RtqMonitoringTaskMeta TaskMeta { get; set; }
17-
18-
[NotNull]
19-
[JsonProperty("taskData")]
20-
[JsonConverter(typeof(TaskDataJsonSerializer))]
21-
public IRtqTaskData TaskData { get; set; }
22-
23-
[NotNull, ItemNotNull]
24-
[JsonProperty("childTaskIds")]
25-
public string[] ChildTaskIds { get; set; }
26-
27-
[NotNull, ItemNotNull]
28-
[JsonProperty("exceptionInfos")]
29-
public string[] ExceptionInfos { get; set; }
30-
}
12+
public static RtqMonitoringTaskModel Empty => new RtqMonitoringTaskModel();
13+
14+
[NotNull]
15+
[JsonPropertyName("taskMeta")]
16+
public RtqMonitoringTaskMeta TaskMeta { get; set; }
17+
18+
[NotNull]
19+
[JsonPropertyName("taskData")]
20+
[JsonConverter(typeof(TaskDataJsonSerializer))]
21+
public IRtqTaskData TaskData { get; set; }
22+
23+
[NotNull, ItemNotNull]
24+
[JsonPropertyName("childTaskIds")]
25+
public string[] ChildTaskIds { get; set; }
26+
27+
[NotNull, ItemNotNull]
28+
[JsonPropertyName("exceptionInfos")]
29+
public string[] ExceptionInfos { get; set; }
3130
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
using Newtonsoft.Json;
1+
using System.Text.Json.Serialization;
22

33
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api;
44

55
public class TaskActions
66
{
7-
[JsonProperty("canCancel")]
7+
[JsonPropertyName("canCancel")]
88
public bool CanCancel { get; set; }
99

10-
[JsonProperty("canRerun")]
10+
[JsonPropertyName("canRerun")]
1111
public bool CanRerun { get; set; }
1212
}

0 commit comments

Comments
 (0)