Skip to content

Commit b07c8e8

Browse files
committed
Overhaul specification version models and serialization
Signed-off-by: Patrick Dwyer <[email protected]>
1 parent 7790bcb commit b07c8e8

File tree

300 files changed

+1437
-10921
lines changed

Some content is hidden

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

300 files changed

+1437
-10921
lines changed

.github/workflows/dotnetcore.yml

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ jobs:
2525
name: Tests for .net core ${{ matrix.framework }} on ${{ matrix.os }}
2626
runs-on: ${{ matrix.os }}
2727
strategy:
28+
fail-fast: false
2829
matrix:
2930
os: [ubuntu-latest, windows-latest, macos-latest]
3031
framework: ['3.1']

CycloneDXLibrary.sln

+28-28
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CycloneDX.Spdx", "src\Cyclo
2727
EndProject
2828
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CycloneDX.Spdx.Tests", "tests\CycloneDX.Spdx.Tests\CycloneDX.Spdx.Tests.csproj", "{9D39D61D-E21B-4CBA-BB3A-BCCD48AA464E}"
2929
EndProject
30-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CycloneDX.Spdx.Interop", "src\CycloneDX.Spdx.Interop\CycloneDX.Spdx.Interop.csproj", "{434B1F90-5D40-4157-8B14-ACC996640FED}"
30+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CycloneDX.Spdx.Interop", "src\CycloneDX.Spdx.Interop\CycloneDX.Spdx.Interop.csproj", "{7E206BAA-8B39-42FC-A199-6DCE932E0E40}"
3131
EndProject
32-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CycloneDX.Spdx.Interop.Tests", "tests\CycloneDX.Spdx.Interop.Tests\CycloneDX.Spdx.Interop.Tests.csproj", "{E1BB373F-FF38-4731-957E-5BD941650BBF}"
32+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CycloneDX.Spdx.Interop.Tests", "tests\CycloneDX.Spdx.Interop.Tests\CycloneDX.Spdx.Interop.Tests.csproj", "{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0}"
3333
EndProject
3434
Global
3535
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -116,30 +116,30 @@ Global
116116
{9D39D61D-E21B-4CBA-BB3A-BCCD48AA464E}.Release|x64.Build.0 = Release|Any CPU
117117
{9D39D61D-E21B-4CBA-BB3A-BCCD48AA464E}.Release|x86.ActiveCfg = Release|Any CPU
118118
{9D39D61D-E21B-4CBA-BB3A-BCCD48AA464E}.Release|x86.Build.0 = Release|Any CPU
119-
{434B1F90-5D40-4157-8B14-ACC996640FED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
120-
{434B1F90-5D40-4157-8B14-ACC996640FED}.Debug|Any CPU.Build.0 = Debug|Any CPU
121-
{434B1F90-5D40-4157-8B14-ACC996640FED}.Debug|x64.ActiveCfg = Debug|Any CPU
122-
{434B1F90-5D40-4157-8B14-ACC996640FED}.Debug|x64.Build.0 = Debug|Any CPU
123-
{434B1F90-5D40-4157-8B14-ACC996640FED}.Debug|x86.ActiveCfg = Debug|Any CPU
124-
{434B1F90-5D40-4157-8B14-ACC996640FED}.Debug|x86.Build.0 = Debug|Any CPU
125-
{434B1F90-5D40-4157-8B14-ACC996640FED}.Release|Any CPU.ActiveCfg = Release|Any CPU
126-
{434B1F90-5D40-4157-8B14-ACC996640FED}.Release|Any CPU.Build.0 = Release|Any CPU
127-
{434B1F90-5D40-4157-8B14-ACC996640FED}.Release|x64.ActiveCfg = Release|Any CPU
128-
{434B1F90-5D40-4157-8B14-ACC996640FED}.Release|x64.Build.0 = Release|Any CPU
129-
{434B1F90-5D40-4157-8B14-ACC996640FED}.Release|x86.ActiveCfg = Release|Any CPU
130-
{434B1F90-5D40-4157-8B14-ACC996640FED}.Release|x86.Build.0 = Release|Any CPU
131-
{E1BB373F-FF38-4731-957E-5BD941650BBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
132-
{E1BB373F-FF38-4731-957E-5BD941650BBF}.Debug|Any CPU.Build.0 = Debug|Any CPU
133-
{E1BB373F-FF38-4731-957E-5BD941650BBF}.Debug|x64.ActiveCfg = Debug|Any CPU
134-
{E1BB373F-FF38-4731-957E-5BD941650BBF}.Debug|x64.Build.0 = Debug|Any CPU
135-
{E1BB373F-FF38-4731-957E-5BD941650BBF}.Debug|x86.ActiveCfg = Debug|Any CPU
136-
{E1BB373F-FF38-4731-957E-5BD941650BBF}.Debug|x86.Build.0 = Debug|Any CPU
137-
{E1BB373F-FF38-4731-957E-5BD941650BBF}.Release|Any CPU.ActiveCfg = Release|Any CPU
138-
{E1BB373F-FF38-4731-957E-5BD941650BBF}.Release|Any CPU.Build.0 = Release|Any CPU
139-
{E1BB373F-FF38-4731-957E-5BD941650BBF}.Release|x64.ActiveCfg = Release|Any CPU
140-
{E1BB373F-FF38-4731-957E-5BD941650BBF}.Release|x64.Build.0 = Release|Any CPU
141-
{E1BB373F-FF38-4731-957E-5BD941650BBF}.Release|x86.ActiveCfg = Release|Any CPU
142-
{E1BB373F-FF38-4731-957E-5BD941650BBF}.Release|x86.Build.0 = Release|Any CPU
119+
{7E206BAA-8B39-42FC-A199-6DCE932E0E40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
120+
{7E206BAA-8B39-42FC-A199-6DCE932E0E40}.Debug|Any CPU.Build.0 = Debug|Any CPU
121+
{7E206BAA-8B39-42FC-A199-6DCE932E0E40}.Debug|x64.ActiveCfg = Debug|Any CPU
122+
{7E206BAA-8B39-42FC-A199-6DCE932E0E40}.Debug|x64.Build.0 = Debug|Any CPU
123+
{7E206BAA-8B39-42FC-A199-6DCE932E0E40}.Debug|x86.ActiveCfg = Debug|Any CPU
124+
{7E206BAA-8B39-42FC-A199-6DCE932E0E40}.Debug|x86.Build.0 = Debug|Any CPU
125+
{7E206BAA-8B39-42FC-A199-6DCE932E0E40}.Release|Any CPU.ActiveCfg = Release|Any CPU
126+
{7E206BAA-8B39-42FC-A199-6DCE932E0E40}.Release|Any CPU.Build.0 = Release|Any CPU
127+
{7E206BAA-8B39-42FC-A199-6DCE932E0E40}.Release|x64.ActiveCfg = Release|Any CPU
128+
{7E206BAA-8B39-42FC-A199-6DCE932E0E40}.Release|x64.Build.0 = Release|Any CPU
129+
{7E206BAA-8B39-42FC-A199-6DCE932E0E40}.Release|x86.ActiveCfg = Release|Any CPU
130+
{7E206BAA-8B39-42FC-A199-6DCE932E0E40}.Release|x86.Build.0 = Release|Any CPU
131+
{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
132+
{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
133+
{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0}.Debug|x64.ActiveCfg = Debug|Any CPU
134+
{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0}.Debug|x64.Build.0 = Debug|Any CPU
135+
{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0}.Debug|x86.ActiveCfg = Debug|Any CPU
136+
{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0}.Debug|x86.Build.0 = Debug|Any CPU
137+
{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
138+
{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0}.Release|Any CPU.Build.0 = Release|Any CPU
139+
{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0}.Release|x64.ActiveCfg = Release|Any CPU
140+
{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0}.Release|x64.Build.0 = Release|Any CPU
141+
{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0}.Release|x86.ActiveCfg = Release|Any CPU
142+
{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0}.Release|x86.Build.0 = Release|Any CPU
143143
EndGlobalSection
144144
GlobalSection(MonoDevelopProperties) = preSolution
145145
Policies = $0
@@ -156,7 +156,7 @@ Global
156156
{7474D234-9911-44FF-9CE7-A1894FEE08F4} = {87631A9A-EDF0-4078-BD7A-731D56B55439}
157157
{A0351F39-0DFB-4789-8297-6C08C6E45912} = {67D64250-A7BE-48A5-96F6-930D06724523}
158158
{9D39D61D-E21B-4CBA-BB3A-BCCD48AA464E} = {87631A9A-EDF0-4078-BD7A-731D56B55439}
159-
{434B1F90-5D40-4157-8B14-ACC996640FED} = {67D64250-A7BE-48A5-96F6-930D06724523}
160-
{E1BB373F-FF38-4731-957E-5BD941650BBF} = {87631A9A-EDF0-4078-BD7A-731D56B55439}
159+
{7E206BAA-8B39-42FC-A199-6DCE932E0E40} = {67D64250-A7BE-48A5-96F6-930D06724523}
160+
{91E7C09A-AFDC-4AEF-AE4F-959AC18041C0} = {87631A9A-EDF0-4078-BD7A-731D56B55439}
161161
EndGlobalSection
162162
EndGlobal

docs/articles/getting-started.md

+24-7
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ using CycloneDX.Json;
1717
...
1818

1919
// deserializing from a string
20-
var bom = Deserializer.Deserialize(jsonString);
20+
var bom = Serializer.Deserialize(jsonString);
2121
// deserializing from a stream
22-
var bom = await Deserializer.DeserializeAsync(jsonStream);
22+
var bom = await Serializer.DeserializeAsync(jsonStream);
2323

2424

2525
// serializing to a string
@@ -58,9 +58,9 @@ using CycloneDX.Xml;
5858
...
5959

6060
// deserializing from a string
61-
var bom = Deserializer.Deserialize(xmlString);
61+
var bom = Serializer.Deserialize(xmlString);
6262
// deserializing from a stream
63-
var bom = Deserializer.Deserialize(xmlStream);
63+
var bom = Serializer.Deserialize(xmlStream);
6464

6565

6666
// serializing to a string
@@ -99,9 +99,9 @@ using CycloneDX.Protobuf;
9999
...
100100

101101
// deserializing from a byte array
102-
var bom = Deserializer.Deserialize(protobufBytes);
102+
var bom = Serializer.Deserialize(protobufBytes);
103103
// deserializing from a stream
104-
var bom = Deserializer.Deserialize(protobufStream);
104+
var bom = Serializer.Deserialize(protobufStream);
105105

106106

107107
// serializing to a byte array
@@ -121,7 +121,24 @@ using CycloneDX;
121121
using (var inputFile = File.OpenRead("bom.json"))
122122
using (var outputFile = File.OpenWrite("bom.xml"))
123123
{
124-
var bom = await Json.Deserializer.DeserializeAsync(jsonStream);
124+
var bom = await Json.Serializer.DeserializeAsync(inputFile);
125125
Xml.Serializer.Serialize(bom, outputFile);
126126
}
127127
```
128+
129+
## Downgrading/Upgrading BOM formats
130+
131+
```csharp
132+
using CycloneDX;
133+
134+
...
135+
136+
using (var inputFile = File.OpenRead("bom-1.2.json"))
137+
using (var outputFile = File.OpenWrite("bom-1.3.json"))
138+
{
139+
var bom = await Json.Serializer.DeserializeAsync(inputFile);
140+
// set the SpecVersion to whatever version you want
141+
bom.SpecVersion = SpecificationVersion.v1_3;
142+
Json.Serializer.Serialize(bom, outputFile);
143+
}
144+
```

docs/namespaces/CycloneDX.Json.Converters.v1_2.md docs/namespaces/CycloneDX.Json.Converters.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ uid: CycloneDX.Json.Converters.v1_2
33
summary: *content
44
---
55
Namespace containing all custom JSON converters required for serialization and
6-
deserialization of v1.2 data models.
6+
deserialization.

docs/namespaces/CycloneDX.Json.Converters.v1_3.md

-6
This file was deleted.

docs/namespaces/CycloneDX.Models.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
uid: CycloneDX.Models
33
summary: *content
44
---
5-
Namespace containing all version specific namespaces for CycloneDX data models.
5+
Namespace containing all CycloneDX data models.

docs/namespaces/CycloneDX.Models.v1_0.md

-5
This file was deleted.

docs/namespaces/CycloneDX.Models.v1_1.md

-5
This file was deleted.

docs/namespaces/CycloneDX.Models.v1_2.md

-5
This file was deleted.

docs/namespaces/CycloneDX.Models.v1_3.md

-5
This file was deleted.

src/CycloneDX.Core/Json/Converters/v1.3/AggregateTypeConverter.cs src/CycloneDX.Core/Json/Converters/AggregateTypeConverter.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
using System.Diagnostics.Contracts;
2020
using System.Text.Json;
2121
using System.Text.Json.Serialization;
22-
using CycloneDX.Models.v1_3;
23-
using AggregateType = CycloneDX.Models.v1_3.Composition.AggregateType;
22+
using CycloneDX.Models;
23+
using AggregateType = CycloneDX.Models.Composition.AggregateType;
2424

25-
namespace CycloneDX.Json.Converters.v1_3
25+
namespace CycloneDX.Json.Converters
2626
{
2727

2828
public class AggregateTypeConverter : JsonConverter<AggregateType>

src/CycloneDX.Core/Json/Converters/v1.2/ComponentScopeConverter.cs src/CycloneDX.Core/Json/Converters/ComponentScopeConverter.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
using System.Diagnostics.Contracts;
2020
using System.Text.Json;
2121
using System.Text.Json.Serialization;
22-
using ComponentScope = CycloneDX.Models.v1_2.Component.ComponentScope;
22+
using ComponentScope = CycloneDX.Models.Component.ComponentScope;
2323

24-
namespace CycloneDX.Json.Converters.v1_2
24+
namespace CycloneDX.Json.Converters
2525
{
2626

2727
public class ComponentScopeConverter : JsonConverter<ComponentScope>

src/CycloneDX.Core/Json/Converters/v1.3/ComponentTypeConverter.cs src/CycloneDX.Core/Json/Converters/ComponentTypeConverter.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
using System.Diagnostics.Contracts;
2020
using System.Text.Json;
2121
using System.Text.Json.Serialization;
22-
using Classification = CycloneDX.Models.v1_3.Component.Classification;
22+
using Classification = CycloneDX.Models.Component.Classification;
2323

24-
namespace CycloneDX.Json.Converters.v1_3
24+
namespace CycloneDX.Json.Converters
2525
{
2626

2727
public class ComponentTypeConverter : JsonConverter<Classification>

src/CycloneDX.Core/Json/Converters/v1.3/DataFlowConverter.cs src/CycloneDX.Core/Json/Converters/DataFlowConverter.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
using System.Diagnostics.Contracts;
2020
using System.Text.Json;
2121
using System.Text.Json.Serialization;
22-
using DataFlow = CycloneDX.Models.v1_3.DataFlow;
22+
using DataFlow = CycloneDX.Models.DataFlow;
2323

24-
namespace CycloneDX.Json.Converters.v1_3
24+
namespace CycloneDX.Json.Converters
2525
{
2626

2727
public class DataFlowConverter : JsonConverter<DataFlow>

src/CycloneDX.Core/Json/Converters/v1.3/DateTimeConverter.cs src/CycloneDX.Core/Json/Converters/DateTimeConverter.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
using System.Text.Json;
2121
using System.Text.Json.Serialization;
2222

23-
namespace CycloneDX.Json.Converters.v1_3
23+
namespace CycloneDX.Json.Converters
2424
{
2525

2626
public class DateTimeConverter : JsonConverter<DateTime?>

src/CycloneDX.Core/Json/Converters/v1.3/DependencyConverter.cs src/CycloneDX.Core/Json/Converters/DependencyConverter.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
using System.Diagnostics.Contracts;
2121
using System.Text.Json;
2222
using System.Text.Json.Serialization;
23-
using Dependency = CycloneDX.Models.v1_3.Dependency;
23+
using Dependency = CycloneDX.Models.Dependency;
2424

25-
namespace CycloneDX.Json.Converters.v1_3
25+
namespace CycloneDX.Json.Converters
2626
{
2727

2828
public class DependencyConverter : JsonConverter<Dependency>

src/CycloneDX.Core/Json/Converters/v1.3/ExternalReferenceTypeConverter.cs src/CycloneDX.Core/Json/Converters/ExternalReferenceTypeConverter.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
using System.Text;
2121
using System.Text.Json;
2222
using System.Text.Json.Serialization;
23-
using ExternalReferenceType = CycloneDX.Models.v1_3.ExternalReference.ExternalReferenceType;
23+
using ExternalReferenceType = CycloneDX.Models.ExternalReference.ExternalReferenceType;
2424

25-
namespace CycloneDX.Json.Converters.v1_3
25+
namespace CycloneDX.Json.Converters
2626
{
2727

2828
public class ExternalReferenceTypeConverter : JsonConverter<ExternalReferenceType>

src/CycloneDX.Core/Json/Converters/v1.2/HashAlgorithmConverter.cs src/CycloneDX.Core/Json/Converters/HashAlgorithmConverter.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
using System.Diagnostics.Contracts;
2020
using System.Text.Json;
2121
using System.Text.Json.Serialization;
22-
using HashAlgorithm = CycloneDX.Models.v1_2.Hash.HashAlgorithm;
22+
using HashAlgorithm = CycloneDX.Models.Hash.HashAlgorithm;
2323

24-
namespace CycloneDX.Json.Converters.v1_2
24+
namespace CycloneDX.Json.Converters
2525
{
2626

2727
public class HashAlgorithmConverter : JsonConverter<HashAlgorithm>

src/CycloneDX.Core/Json/Converters/v1.3/IssueClassificationConverter.cs src/CycloneDX.Core/Json/Converters/IssueClassificationConverter.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
using System.Diagnostics.Contracts;
2020
using System.Text.Json;
2121
using System.Text.Json.Serialization;
22-
using IssueClassification = CycloneDX.Models.v1_3.Issue.IssueClassification;
22+
using IssueClassification = CycloneDX.Models.Issue.IssueClassification;
2323

24-
namespace CycloneDX.Json.Converters.v1_3
24+
namespace CycloneDX.Json.Converters
2525
{
2626

2727
public class IssueClassificationConverter : JsonConverter<IssueClassification>

src/CycloneDX.Core/Json/Converters/v1.3/LicenseConverter.cs src/CycloneDX.Core/Json/Converters/LicenseConverter.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
using System.Text.Json;
2121
using System.Text.Json.Serialization;
2222

23-
using License = CycloneDX.Models.v1_3.License;
23+
using License = CycloneDX.Models.License;
2424

25-
namespace CycloneDX.Json.Converters.v1_3
25+
namespace CycloneDX.Json.Converters
2626
{
2727

2828
public class LicenseConverter : JsonConverter<License>
@@ -68,7 +68,7 @@ public override License Read(
6868

6969
if (reader.TokenType != JsonTokenType.Null)
7070
{
71-
license.Text = new Models.v1_3.AttachedText();
71+
license.Text = new Models.AttachedText();
7272

7373
while (reader.Read())
7474
{

src/CycloneDX.Core/Json/Converters/v1.2/PatchClassificationConverter.cs src/CycloneDX.Core/Json/Converters/PatchClassificationConverter.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
using System.Diagnostics.Contracts;
2020
using System.Text.Json;
2121
using System.Text.Json.Serialization;
22-
using PatchClassification = CycloneDX.Models.v1_2.Patch.PatchClassification;
22+
using PatchClassification = CycloneDX.Models.Patch.PatchClassification;
2323

24-
namespace CycloneDX.Json.Converters.v1_2
24+
namespace CycloneDX.Json.Converters
2525
{
2626

2727
public class PatchClassificationConverter : JsonConverter<PatchClassification>

0 commit comments

Comments
 (0)