diff --git a/src/CycloneDX.Spdx.Interop/Converters/v2_2/Helpers/Bom/Files.cs b/src/CycloneDX.Spdx.Interop/Converters/v2_2/Helpers/Bom/Files.cs index 73319132..5f11f3e5 100644 --- a/src/CycloneDX.Spdx.Interop/Converters/v2_2/Helpers/Bom/Files.cs +++ b/src/CycloneDX.Spdx.Interop/Converters/v2_2/Helpers/Bom/Files.cs @@ -48,11 +48,15 @@ public static List GetSpdxFiles(this Bom bom) var copyrightText = component.Copyright; if (!String.IsNullOrEmpty(copyrightText) && copyrightText != "NOASSERTION") + { file.CopyrightText = copyrightText; + } var licenseConcluded = component.Properties?.GetSpdxElement(PropertyTaxonomy.LICENSE_CONCLUDED); if (!String.IsNullOrEmpty(licenseConcluded) && licenseConcluded != "NOASSERTION") + { file.LicenseConcluded = licenseConcluded; + } if (file.SPDXID == null) { @@ -102,7 +106,7 @@ public static void AddSpdxFiles(this Bom bom, List files) component.Properties.AddSpdxElement(PropertyTaxonomy.SPDXID, file.SPDXID); component.Properties.AddSpdxElement(PropertyTaxonomy.COMMENT, file.Comment); component.Properties.AddSpdxElements(PropertyTaxonomy.FILE_TYPE, file.FileTypes); - component.Properties.AddSpdxElements(PropertyTaxonomy.ANNOTATION, file.Annotations); + component.Properties.AddSpdxElements(PropertyTaxonomy.ANNOTATION, file.Annotations); component.Properties.AddSpdxElement(PropertyTaxonomy.LICENSE_COMMENTS, file.LicenseComments); component.Properties.AddSpdxElement(PropertyTaxonomy.LICENSE_CONCLUDED, file.LicenseConcluded); component.Properties.AddSpdxElements(PropertyTaxonomy.FILE_CONTRIBUTOR, file.FileContributors); diff --git a/src/CycloneDX.Spdx.Interop/Converters/v2_2/Helpers/CycloneDXBomHelpers.cs b/src/CycloneDX.Spdx.Interop/Converters/v2_2/Helpers/CycloneDXBomHelpers.cs index 4b540689..dee2f986 100644 --- a/src/CycloneDX.Spdx.Interop/Converters/v2_2/Helpers/CycloneDXBomHelpers.cs +++ b/src/CycloneDX.Spdx.Interop/Converters/v2_2/Helpers/CycloneDXBomHelpers.cs @@ -79,8 +79,11 @@ public static void AddSpdxPackages(this Bom bom, SpdxDocument doc) component.Type = Component.Classification.Library; break; } - } else + } + else + { component.Type = Component.Classification.Library; + } if (package.LicenseInfoFromFiles != null && package.LicenseInfoFromFiles.Count > 0) diff --git a/src/CycloneDX.Spdx.Interop/Converters/v2_2/Helpers/SpdxDocumentHelpers.cs b/src/CycloneDX.Spdx.Interop/Converters/v2_2/Helpers/SpdxDocumentHelpers.cs index 59133084..d81de69b 100644 --- a/src/CycloneDX.Spdx.Interop/Converters/v2_2/Helpers/SpdxDocumentHelpers.cs +++ b/src/CycloneDX.Spdx.Interop/Converters/v2_2/Helpers/SpdxDocumentHelpers.cs @@ -50,7 +50,9 @@ public static void AddCycloneDXComponents(this SpdxDocument doc, Bom bom) var copyrightText = component.Copyright; if (!String.IsNullOrEmpty(copyrightText) && copyrightText != "NOASSERTION") + { package.CopyrightText = copyrightText; + } package.SPDXID = component.Properties?.GetSpdxElement(PropertyTaxonomy.SPDXID); if (package.SPDXID == null) @@ -72,20 +74,25 @@ public static void AddCycloneDXComponents(this SpdxDocument doc, Bom bom) var licenseConcluded = component.Properties?.GetSpdxElement(PropertyTaxonomy.LICENSE_CONCLUDED); if (!String.IsNullOrEmpty(licenseConcluded) && licenseConcluded != "NOASSERTION") + { package.LicenseConcluded = licenseConcluded; + } - var builtDate = component.Properties?.GetSpdxElement(PropertyTaxonomy.PACKAGE_BUILT_DATE); - if ( ! String.IsNullOrEmpty(builtDate)){ + var builtDate = component.Properties?.GetSpdxElement(PropertyTaxonomy.PACKAGE_BUILT_DATE); + if ( ! String.IsNullOrEmpty(builtDate)) + { package.BuiltDate = DateTime.Parse(builtDate.Trim('"')); } var releaseDate = component.Properties?.GetSpdxElement(PropertyTaxonomy.PACKAGE_RELEASE_DATE); - if ( ! String.IsNullOrEmpty(releaseDate)){ + if ( ! String.IsNullOrEmpty(releaseDate)) + { package.ReleaseDate = DateTime.Parse(releaseDate.Trim('"')); } var validUntilDate = component.Properties?.GetSpdxElement(PropertyTaxonomy.PACKAGE_VALID_UNTIL_DATE); - if ( ! String.IsNullOrEmpty(validUntilDate)){ + if ( ! String.IsNullOrEmpty(validUntilDate)) + { package.ValidUntilDate = DateTime.Parse(validUntilDate.Trim('"')); } @@ -138,8 +145,11 @@ public static void AddCycloneDXComponents(this SpdxDocument doc, Bom bom) // LicenseDeclared var licenseDeclared = component.Properties?.GetSpdxElement(PropertyTaxonomy.LICENSE_DECLARED); - if(!String.IsNullOrEmpty(licenseDeclared) && licenseDeclared != "NOASSERTION") + if (!String.IsNullOrEmpty(licenseDeclared) && licenseDeclared != "NOASSERTION") + { package.LicenseDeclared = licenseDeclared; + } + if (component.Licenses != null && component.Licenses.Count == 1) { @@ -197,15 +207,16 @@ public static void AddCycloneDXComponents(this SpdxDocument doc, Bom bom) case Component.Classification.Framework: package.PrimaryPackagePurpose = PrimaryPackagePurposeType.FRAMEWORK; break; - case Component.Classification.Library: - package.PrimaryPackagePurpose = PrimaryPackagePurposeType.LIBRARY; - break; + case Component.Classification.Operating_System: package.PrimaryPackagePurpose = PrimaryPackagePurposeType.OPERATING_SYSTEM; break; case Component.Classification.Container: package.PrimaryPackagePurpose = PrimaryPackagePurposeType.CONTAINER; break; + default: + package.PrimaryPackagePurpose = PrimaryPackagePurposeType.LIBRARY; + break; } //TODO HasFile