Skip to content

Commit

Permalink
feature(spdx)!: serialize referenceCategory using hyphens by default …
Browse files Browse the repository at this point in the history
…so it matches SPDX 2.2.2

Signed-off-by: Wessel Terpstra <wessel@wesselterpstra.com>
  • Loading branch information
wterpstra committed Nov 6, 2023
1 parent cc41ba6 commit d6a7c5e
Show file tree
Hide file tree
Showing 11 changed files with 27 additions and 10 deletions.
13 changes: 12 additions & 1 deletion src/CycloneDX.Spdx/Models/v2_2/ExternalRef.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
// Copyright (c) OWASP Foundation. All Rights Reserved.

using System;
using System.Reflection;
using System.Runtime.Serialization;
using System.Text.Json.Serialization;
using System.Xml.Serialization;

Expand All @@ -39,7 +41,16 @@ public class ExternalRef
[JsonIgnore]
public string ReferenceCategoryAsString
{
get => ReferenceCategory.ToString();
get
{
switch (ReferenceCategory)
{
case ExternalRefCategory.PACKAGE_MANAGER:
return "PACKAGE-MANAGER";
default:
return ReferenceCategory.ToString();
}
}
set
{
switch (value.ToUpperInvariant())
Expand Down
2 changes: 2 additions & 0 deletions src/CycloneDX.Spdx/Models/v2_2/ExternalRefCategory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,15 @@
// Copyright (c) OWASP Foundation. All Rights Reserved.

using System;
using System.Runtime.Serialization;

namespace CycloneDX.Spdx.Models.v2_2
{
public enum ExternalRefCategory
{
OTHER,
SECURITY,
[EnumMember(Value = "PACKAGE-MANAGER")]
PACKAGE_MANAGER,
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
namespace CycloneDX.Spdx.Serialization.Converters
{

public class HyphenToUnderscoreEnumConverter<T> : JsonConverter<T> where T: struct
public class HyphenEnumConverter<T> : JsonConverter<T> where T: struct
{
public override T Read(
ref Utf8JsonReader reader,
Expand Down Expand Up @@ -56,7 +56,7 @@ public class HyphenToUnderscoreEnumConverter<T> : JsonConverter<T> where T: stru
JsonSerializerOptions options)
{
Contract.Requires(writer != null);
writer.WriteStringValue(value.ToString());
writer.WriteStringValue(value.ToString().Replace('_', '-'));
}
}
}
2 changes: 1 addition & 1 deletion src/CycloneDX.Spdx/Serialization/JsonSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public static JsonSerializerOptions GetJsonSerializerOptions_v2_2()
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
};
options.Converters.Add(new HyphenToUnderscoreEnumConverter<ExternalRefCategory>());
options.Converters.Add(new HyphenEnumConverter<ExternalRefCategory>());
options.Converters.Add(new JsonStringEnumConverter());
return options;
}
Expand Down
4 changes: 4 additions & 0 deletions tests/CycloneDX.Spdx.Tests/CycloneDX.Spdx.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,8 @@
<ProjectReference Include="..\..\src\CycloneDX.Spdx\CycloneDX.Spdx.csproj" />
</ItemGroup>

<ItemGroup>
<Folder Include="__snapshots__\" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@
"downloadLocation": "https://search.maven.org/remotecontent?filepath=org/apache/jena/apache-jena/3.12.0/apache-jena-3.12.0.tar.gz",
"externalRefs": [
{
"referenceCategory": "PACKAGE_MANAGER",
"referenceCategory": "PACKAGE-MANAGER",
"referenceLocator": "pkg:maven/org.apache.jena/apache-jena@3.12.0",
"referenceType": "purl"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@
"downloadLocation": "https://search.maven.org/remotecontent?filepath=org/apache/jena/apache-jena/3.12.0/apache-jena-3.12.0.tar.gz",
"externalRefs": [
{
"referenceCategory": "PACKAGE_MANAGER",
"referenceCategory": "PACKAGE-MANAGER",
"referenceLocator": "pkg:maven/org.apache.jena/apache-jena@3.12.0",
"referenceType": "purl"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@
"downloadLocation": "https://search.maven.org/remotecontent?filepath=org/apache/jena/apache-jena/3.12.0/apache-jena-3.12.0.tar.gz",
"externalRefs": [
{
"referenceCategory": "PACKAGE_MANAGER",
"referenceCategory": "PACKAGE-MANAGER",
"referenceLocator": "pkg:maven/org.apache.jena/apache-jena@3.12.0",
"referenceType": "purl"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@
"downloadLocation": "https://search.maven.org/remotecontent?filepath=org/apache/jena/apache-jena/3.12.0/apache-jena-3.12.0.tar.gz",
"externalRefs": [
{
"referenceCategory": "PACKAGE_MANAGER",
"referenceCategory": "PACKAGE-MANAGER",
"referenceLocator": "pkg:maven/org.apache.jena/apache-jena@3.12.0",
"referenceType": "purl"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@
<copyrightText>NOASSERTION</copyrightText>
<downloadLocation>https://search.maven.org/remotecontent?filepath=org/apache/jena/apache-jena/3.12.0/apache-jena-3.12.0.tar.gz</downloadLocation>
<externalRefs>
<referenceCategory>PACKAGE_MANAGER</referenceCategory>
<referenceCategory>PACKAGE-MANAGER</referenceCategory>
<referenceLocator>pkg:maven/org.apache.jena/apache-jena@3.12.0</referenceLocator>
<referenceType>purl</referenceType>
</externalRefs>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@
<copyrightText>NOASSERTION</copyrightText>
<downloadLocation>https://search.maven.org/remotecontent?filepath=org/apache/jena/apache-jena/3.12.0/apache-jena-3.12.0.tar.gz</downloadLocation>
<externalRefs>
<referenceCategory>PACKAGE_MANAGER</referenceCategory>
<referenceCategory>PACKAGE-MANAGER</referenceCategory>
<referenceLocator>pkg:maven/org.apache.jena/apache-jena@3.12.0</referenceLocator>
<referenceType>purl</referenceType>
</externalRefs>
Expand Down

0 comments on commit d6a7c5e

Please sign in to comment.