Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NJsonSchema v11 (preview) #1450

Merged
merged 59 commits into from
Sep 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
a5e2be7
Use STJ, refactor
RicoSuter Oct 26, 2021
388f596
Merge
RicoSuter Oct 26, 2021
07abe81
Remove legacy
RicoSuter Oct 26, 2021
ed2f08a
up
RicoSuter Oct 26, 2021
6acd7a2
Ignore tests
RicoSuter Oct 26, 2021
60523f4
Move
RicoSuter Oct 26, 2021
e235a37
Remove old targets
RicoSuter Oct 26, 2021
e5359bc
Add STJ
RicoSuter Oct 26, 2021
eda3d0d
Merge
RicoSuter Oct 26, 2021
23a161b
Remove dep
RicoSuter Oct 26, 2021
487ce9f
Rename
RicoSuter Oct 26, 2021
8d99855
Update
RicoSuter Oct 26, 2021
75e5097
Refactor
RicoSuter Oct 26, 2021
7ddad05
Updates
RicoSuter Oct 26, 2021
8a7bf6f
Fixes
RicoSuter Oct 26, 2021
a8232bc
Remove code
RicoSuter Oct 26, 2021
dc6a177
Merge
RicoSuter Nov 10, 2021
21ea15d
Refactoring
RicoSuter Nov 11, 2021
24524bd
Refactor
RicoSuter Nov 17, 2021
c8ad504
Update
RicoSuter Nov 17, 2021
dbcbbe7
Update
RicoSuter Nov 22, 2021
6753831
Merge
RicoSuter Nov 25, 2021
9681919
Fixes
RicoSuter Nov 25, 2021
878a9f0
clean proj
RicoSuter Nov 25, 2021
2a1a9ff
Improve proj
RicoSuter Nov 25, 2021
2906076
Merge branch 'master' into features/use-stj
RicoSuter Dec 3, 2021
a478faf
Fixes
RicoSuter Dec 3, 2021
2565cb2
Merge branch 'master' into features/use-stj
RicoSuter Dec 5, 2021
50bd23a
Fix
RicoSuter Dec 5, 2021
729bb53
Improve type handling
RicoSuter Dec 5, 2021
8c68c18
Merge
RicoSuter Jun 27, 2022
41443e7
Merge branch 'master' into features/use-stj
RicoSuter Sep 16, 2022
2c19479
Update
RicoSuter Sep 16, 2022
b5a6d11
Merge branch 'master' into features/use-stj
RicoSuter Dec 10, 2022
5316c75
Fixes
RicoSuter Feb 13, 2023
3ba129d
merge
Aug 20, 2023
f74c5ef
Merge branch 'features/use-stj' of https://github.com/RicoSuter/NJson…
Aug 20, 2023
9918657
fix tests
Aug 20, 2023
1e2ad68
improvements
Aug 20, 2023
0e65f32
improve projects
Aug 20, 2023
06b677b
update packages
Aug 20, 2023
8bc9f23
Upgrade to net462
Aug 20, 2023
e805e66
Namotion.Reflection v3
Aug 20, 2023
a115239
add net6.0 target
Aug 20, 2023
cd6d62a
add struct
Sep 15, 2023
589eb9c
remove enum handling
Sep 25, 2023
d973d7c
update pipeline
Sep 25, 2023
1c84ba9
update build.yml
Sep 25, 2023
4191406
Merge branch 'master' into features/use-stj
Sep 25, 2023
b8fc469
update build
Sep 25, 2023
67fa6f0
fix string enums
Sep 26, 2023
c93b2a2
Remove SystemTextJsonSchemaGenerator
Sep 26, 2023
b5f0b8e
fixes
Sep 26, 2023
24a9092
fix
Sep 26, 2023
da18684
Move namespaces
Sep 26, 2023
e1b561f
move
Sep 26, 2023
83950bb
Fix struct handling, closes #1624
Sep 26, 2023
7a33fdc
move
Sep 26, 2023
c9c65da
Ignore EqualityContract
Sep 26, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions build/Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,18 @@ protected override void OnBuildInitialized()
{
VersionPrefix = DetermineVersionPrefix();

VersionSuffix = !IsTaggedBuild
? $"preview-{DateTime.UtcNow:yyyyMMdd-HHmm}"
: "";
var versionParts = VersionPrefix.Split('-');
if (versionParts.Length == 2)
{
VersionPrefix = versionParts[0];
VersionSuffix = versionParts[1];
}
else
{
VersionSuffix = !IsTaggedBuild
? $"preview-{DateTime.UtcNow:yyyyMMdd-HHmm}"
: "";
}

if (IsLocalBuild)
{
Expand Down
4 changes: 2 additions & 2 deletions build/_build.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
Expand All @@ -12,7 +12,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Nuke.Common" Version="5.3.0" />
<PackageReference Include="Nuke.Common" Version="7.0.2" />
<PackageDownload Include="NuGet.CommandLine" Version="[5.11.0]" />
</ItemGroup>

Expand Down
3 changes: 2 additions & 1 deletion src/NJsonSchema.Benchmark/JsonSchemaGeneratorBenchmark.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using BenchmarkDotNet.Attributes;
using NJsonSchema.NewtonsoftJson.Generation;

namespace NJsonSchema.Benchmark
{
Expand All @@ -8,7 +9,7 @@ public class JsonSchemaGeneratorBenchmark
[Benchmark]
public void GenerateFile()
{
JsonSchema.FromType<SchemaGenerationBenchmarks.Container>();
NewtonsoftJsonSchemaGenerator.FromType<SchemaGenerationBenchmarks.Container>();
}
}
}
11 changes: 9 additions & 2 deletions src/NJsonSchema.Benchmark/NJsonSchema.Benchmark.csproj
Original file line number Diff line number Diff line change
@@ -1,28 +1,35 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<GenerateProgramFile>false</GenerateProgramFile>
<NoWarn>$(NoWarn),xUnit1013</NoWarn>
<SignAssembly>false</SignAssembly>
</PropertyGroup>

<ItemGroup>
<EmbeddedResource Include="*.json" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.13.1" />
<PackageReference Include="BenchmarkDotNet" Version="0.13.7" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
<PackageReference Include="NBench" Version="2.0.1" />
<PackageReference Include="Pro.NBench.xUnit" Version="2.0.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" PrivateAssets="all" />
</ItemGroup>

<ItemGroup>
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\NJsonSchema.CodeGeneration.CSharp\NJsonSchema.CodeGeneration.CSharp.csproj" />
<ProjectReference Include="..\NJsonSchema.CodeGeneration.TypeScript\NJsonSchema.CodeGeneration.TypeScript.csproj" />
<ProjectReference Include="..\NJsonSchema.NewtonsoftJson\NJsonSchema.NewtonsoftJson.csproj" />
<ProjectReference Include="..\NJsonSchema.Tests\NJsonSchema.Tests.csproj" />
<ProjectReference Include="..\NJsonSchema\NJsonSchema.csproj" />
</ItemGroup>

</Project>
3 changes: 2 additions & 1 deletion src/NJsonSchema.Benchmark/SchemaGenerationBenchmarks.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.Diagnostics;
using System.Runtime.Serialization;
using NBench;
using NJsonSchema.NewtonsoftJson.Generation;
using Pro.NBench.xUnit.XunitExtensions;
using Xunit.Abstractions;

Expand Down Expand Up @@ -32,7 +33,7 @@ public void Setup(BenchmarkContext context)
[CounterThroughputAssertion("Iterations", MustBe.GreaterThan, 100)]
public void GenerateSchema()
{
var schema = JsonSchema.FromType<Container>();
var schema = NewtonsoftJsonSchemaGenerator.FromType<Container>();
_counter.Increment();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using NJsonSchema.CodeGeneration.CSharp;
using NJsonSchema.NewtonsoftJson.Generation;
using System.Threading.Tasks;
using Xunit;

Expand All @@ -15,7 +16,7 @@ public abstract class AbstractClass
public async Task When_class_is_abstract_then_is_abstract_CSharp_keyword_is_generated()
{
/// Arrange
var schema = JsonSchema.FromType<AbstractClass>();
var schema = NewtonsoftJsonSchemaGenerator.FromType<AbstractClass>();

/// Act
var generator = new CSharpGenerator(schema, new CSharpGeneratorSettings());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.Threading.Tasks;
using NJsonSchema.CodeGeneration.CSharp;
using NJsonSchema.Generation;
using NJsonSchema.NewtonsoftJson.Generation;
using Xunit;

namespace NJsonSchema.CodeGeneration.Tests.CSharp
Expand Down Expand Up @@ -236,7 +237,7 @@ public class Book
public void When_AlwaysAllowAdditionalObjectProperties_is_set_then_dictionary_and_no_object_are_not_same()
{
// Arrange
var schema = JsonSchema.FromType<Book>(new JsonSchemaGeneratorSettings
var schema = NewtonsoftJsonSchemaGenerator.FromType<Book>(new NewtonsoftJsonSchemaGeneratorSettings
{
AlwaysAllowAdditionalObjectProperties = true
});
Expand All @@ -262,7 +263,7 @@ public void When_AlwaysAllowAdditionalObjectProperties_is_set_then_dictionary_an
public void When_AlwaysAllowAdditionalObjectProperties_is_set_then_any_page_has_additional_properties()
{
// Arrange
var schema = JsonSchema.FromType<Book>(new JsonSchemaGeneratorSettings
var schema = NewtonsoftJsonSchemaGenerator.FromType<Book>(new NewtonsoftJsonSchemaGeneratorSettings
{
AlwaysAllowAdditionalObjectProperties = true
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks;
using NJsonSchema.CodeGeneration.CSharp;
using NJsonSchema.NewtonsoftJson.Generation;
using Xunit;

namespace NJsonSchema.CodeGeneration.Tests.CSharp
Expand All @@ -23,7 +24,7 @@ public class MyRequiredTest
public async Task When_array_property_is_not_nullable_then_it_does_not_have_a_setter()
{
//// Arrange
var schema = JsonSchema.FromType<MyRequiredTest>();
var schema = NewtonsoftJsonSchemaGenerator.FromType<MyRequiredTest>();
var generator = new CSharpGenerator(schema, new CSharpGeneratorSettings
{
ClassStyle = CSharpClassStyle.Poco,
Expand Down
5 changes: 3 additions & 2 deletions src/NJsonSchema.CodeGeneration.CSharp.Tests/ArrayTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using NJsonSchema.Annotations;
using NJsonSchema.NewtonsoftJson.Generation;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks;
Expand All @@ -18,7 +19,7 @@ public class ArrayTest
public async Task When_array_property_is_required_then_array_instance_can_be_changed()
{
//// Arrange
var schema = JsonSchema.FromType<ArrayTest>();
var schema = NewtonsoftJsonSchemaGenerator.FromType<ArrayTest>();
var data = schema.ToJson();

//// Act
Expand All @@ -45,7 +46,7 @@ public class ClassWithNullableArrayItems
public async Task When_array_item_is_nullable_then_generated_CSharp_is_correct()
{
// Arrange
var schema = JsonSchema.FromType<ClassWithNullableArrayItems>();
var schema = NewtonsoftJsonSchemaGenerator.FromType<ClassWithNullableArrayItems>();
var json = schema.ToJson();
var generator = new CSharpGenerator(schema, new CSharpGeneratorSettings());

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using NJsonSchema.NewtonsoftJson.Generation;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks;
using Xunit;
Expand All @@ -25,7 +26,7 @@ public class EnumKeyDictionaryTest
public async Task When_dictionary_key_is_enum_then_csharp_has_enum_key()
{
//// Arrange
var schema = JsonSchema.FromType<EnumKeyDictionaryTest>();
var schema = NewtonsoftJsonSchemaGenerator.FromType<EnumKeyDictionaryTest>();
var data = schema.ToJson();

//// Act
Expand All @@ -41,7 +42,7 @@ public async Task When_dictionary_key_is_enum_then_csharp_has_enum_key()
public async Task When_dictionary_property_is_required_then_dictionary_instance_can_be_changed()
{
//// Arrange
var schema = JsonSchema.FromType<EnumKeyDictionaryTest>();
var schema = NewtonsoftJsonSchemaGenerator.FromType<EnumKeyDictionaryTest>();
var data = schema.ToJson();

//// Act
Expand Down
7 changes: 4 additions & 3 deletions src/NJsonSchema.CodeGeneration.CSharp.Tests/EnumTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Newtonsoft.Json.Converters;
using NJsonSchema.CodeGeneration.CSharp;
using NJsonSchema.Generation;
using NJsonSchema.NewtonsoftJson.Generation;
using System.Collections.Generic;
using System.Threading.Tasks;
using Xunit;
Expand Down Expand Up @@ -137,7 +138,7 @@ public enum MyStringEnum
public async Task When_enum_list_uses_string_enums_then_ItemConverterType_is_set()
{
//// Arrange
var schema = JsonSchema.FromType<MyStringEnumListTest>();
var schema = NewtonsoftJsonSchemaGenerator.FromType<MyStringEnumListTest>();
var data = schema.ToJson();
var generator =
new CSharpGenerator(schema, new CSharpGeneratorSettings { ClassStyle = CSharpClassStyle.Poco });
Expand All @@ -153,7 +154,7 @@ public async Task When_enum_list_uses_string_enums_then_ItemConverterType_is_set
public async Task When_enum_is_nullable_then_StringEnumConverter_is_set()
{
//// Arrange
var schema = JsonSchema.FromType<MyStringEnumListTest>();
var schema = NewtonsoftJsonSchemaGenerator.FromType<MyStringEnumListTest>();
var data = schema.ToJson();
var generator =
new CSharpGenerator(schema, new CSharpGeneratorSettings { ClassStyle = CSharpClassStyle.Poco });
Expand Down Expand Up @@ -182,7 +183,7 @@ public class SomeClass
public async Task When_class_has_enum_array_property_then_enum_name_is_preserved()
{
//// Arrange
var schema = JsonSchema.FromType<SomeClass>(new JsonSchemaGeneratorSettings());
var schema = NewtonsoftJsonSchemaGenerator.FromType<SomeClass>(new NewtonsoftJsonSchemaGeneratorSettings());
var json = schema.ToJson();

//// Act
Expand Down
Loading
Loading