This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ant-antlibs-cyclonedx.git


The following commit(s) were added to refs/heads/main by this push:
     new b63c894  the SBOM itself can have a license
b63c894 is described below

commit b63c894b3f47061e09a6b3af902ca9ce1b4f5ff1
Author: Stefan Bodewig <[email protected]>
AuthorDate: Sat May 16 14:31:27 2026 +0200

    the SBOM itself can have a license
---
 examples/ant-cyclonedx-0.1alpha-cyclonedx.json     |  46 ++++----
 examples/ant-cyclonedx-0.1alpha-cyclonedx.xml      |  42 ++++---
 .../ant-cyclonedx-0.1alpha-src.tar-cyclonedx.json  | 126 +++++++++++----------
 .../ant-cyclonedx-0.1alpha-src.tar-cyclonedx.xml   | 122 ++++++++++----------
 .../org/apache/ant/cyclonedx/ComponentBomTask.java |  14 +++
 src/tests/antunit/componentbom-test.xml            |   2 +
 6 files changed, 198 insertions(+), 154 deletions(-)

diff --git a/examples/ant-cyclonedx-0.1alpha-cyclonedx.json 
b/examples/ant-cyclonedx-0.1alpha-cyclonedx.json
index 5e8c40a..8c4a8cb 100644
--- a/examples/ant-cyclonedx-0.1alpha-cyclonedx.json
+++ b/examples/ant-cyclonedx-0.1alpha-cyclonedx.json
@@ -1,10 +1,10 @@
 {
   "bomFormat" : "CycloneDX",
   "specVersion" : "1.6",
-  "serialNumber" : "urn:uuid:82014c1b-0e26-4d7b-9fdb-66ab93e3675d",
+  "serialNumber" : "urn:uuid:21dba3be-d114-4229-b733-cc68124d216b",
   "version" : 1,
   "metadata" : {
-    "timestamp" : "2026-05-16T12:22:16Z",
+    "timestamp" : "2026-05-16T12:30:30Z",
     "lifecycles" : [
       {
         "phase" : "build"
@@ -34,35 +34,35 @@
           "hashes" : [
             {
               "alg" : "MD5",
-              "content" : "03f8c31a8616cbc686593c269d9d94d6"
+              "content" : "38390cefe49ce02d3c02ad74db7b099a"
             },
             {
               "alg" : "SHA-1",
-              "content" : "4167c654e68ecad826803cd44134bb13eb712bb1"
+              "content" : "390e4fd2484c5fed5f9289dd74912ba80d40abbd"
             },
             {
               "alg" : "SHA-256",
-              "content" : 
"5ac8ee9ad1ffaa927f49f6d41d6228a7e33aae4a2356074f5287c4d6223a8bb7"
+              "content" : 
"d5d579c74a21c109ef99fccb6b7a740f57298ba53483ca654a2afeb466f804ff"
             },
             {
               "alg" : "SHA-512",
-              "content" : 
"3b91efb9a8a1a2961e7cea72186a3eea5d076955d1404e2e257da700ad8dcd519a0fe315d873d6833e50442d4ad078372fa568495159ea77a2c35a578ead6756"
+              "content" : 
"1dd6d7942d1446c05f5b01b0fb640e71c356b967840c5cf589f8cd154a89995135afdfc38c681ca9a5f0d91989b827646eb244a72df47dc760b9a46eb13177f2"
             },
             {
               "alg" : "SHA3-256",
-              "content" : 
"36e62b3d901a7ba849862bbca8f72e700f97f6c6106bfc834fedd2c11c993937"
+              "content" : 
"1f730b124f448e047e91a53c5fb6211543eeb482cbc9d3fa44d364f23676e9b0"
             },
             {
               "alg" : "SHA3-512",
-              "content" : 
"3525bb060f97cb27b16a38827a422862996083af907aace7da6b235f484d0cf75c4973b71f4b1b96798747d71e3bc1b4d37af177f267def0dd7b081b9dd20530"
+              "content" : 
"9cf3f3d4c16fc384f6be7e8d53f0c5e80c4f2320f1772a3024b7d52f7a7c6c5133dbd823e619fd9363186410a368943a286a84c8a6775484d1004b4502e056d1"
             },
             {
               "alg" : "SHA-384",
-              "content" : 
"62c64cd72d3b95f2aa94129468ed696d0df9c2e9f980dd3cef9d07dc8eea3eeeb959233c842c5a1f05927e9cf93e8031"
+              "content" : 
"864e9b5295b1899c72d1bc2d05df978921a87a133fc5cfbe046657269babac7554ebe001cb25814979cd1e57f31f1d8f"
             },
             {
               "alg" : "SHA3-384",
-              "content" : 
"028fb03ab903abf7c87beb1d90d575008de67cd4ef53d9cfe11f7348fcab4f80f4f2e55ead544fca86370684664c3116"
+              "content" : 
"46012688400d42980f7d10f3e9aac9fef220be3ddfa941ab15c5c258cc75d82ab9938afcd977089b46b40790682d6f04"
             }
           ],
           "licenses" : [
@@ -138,35 +138,35 @@
       "hashes" : [
         {
           "alg" : "MD5",
-          "content" : "03f8c31a8616cbc686593c269d9d94d6"
+          "content" : "38390cefe49ce02d3c02ad74db7b099a"
         },
         {
           "alg" : "SHA-1",
-          "content" : "4167c654e68ecad826803cd44134bb13eb712bb1"
+          "content" : "390e4fd2484c5fed5f9289dd74912ba80d40abbd"
         },
         {
           "alg" : "SHA-256",
-          "content" : 
"5ac8ee9ad1ffaa927f49f6d41d6228a7e33aae4a2356074f5287c4d6223a8bb7"
+          "content" : 
"d5d579c74a21c109ef99fccb6b7a740f57298ba53483ca654a2afeb466f804ff"
         },
         {
           "alg" : "SHA-512",
-          "content" : 
"3b91efb9a8a1a2961e7cea72186a3eea5d076955d1404e2e257da700ad8dcd519a0fe315d873d6833e50442d4ad078372fa568495159ea77a2c35a578ead6756"
+          "content" : 
"1dd6d7942d1446c05f5b01b0fb640e71c356b967840c5cf589f8cd154a89995135afdfc38c681ca9a5f0d91989b827646eb244a72df47dc760b9a46eb13177f2"
         },
         {
           "alg" : "SHA3-256",
-          "content" : 
"36e62b3d901a7ba849862bbca8f72e700f97f6c6106bfc834fedd2c11c993937"
+          "content" : 
"1f730b124f448e047e91a53c5fb6211543eeb482cbc9d3fa44d364f23676e9b0"
         },
         {
           "alg" : "SHA3-512",
-          "content" : 
"3525bb060f97cb27b16a38827a422862996083af907aace7da6b235f484d0cf75c4973b71f4b1b96798747d71e3bc1b4d37af177f267def0dd7b081b9dd20530"
+          "content" : 
"9cf3f3d4c16fc384f6be7e8d53f0c5e80c4f2320f1772a3024b7d52f7a7c6c5133dbd823e619fd9363186410a368943a286a84c8a6775484d1004b4502e056d1"
         },
         {
           "alg" : "SHA-384",
-          "content" : 
"62c64cd72d3b95f2aa94129468ed696d0df9c2e9f980dd3cef9d07dc8eea3eeeb959233c842c5a1f05927e9cf93e8031"
+          "content" : 
"864e9b5295b1899c72d1bc2d05df978921a87a133fc5cfbe046657269babac7554ebe001cb25814979cd1e57f31f1d8f"
         },
         {
           "alg" : "SHA3-384",
-          "content" : 
"028fb03ab903abf7c87beb1d90d575008de67cd4ef53d9cfe11f7348fcab4f80f4f2e55ead544fca86370684664c3116"
+          "content" : 
"46012688400d42980f7d10f3e9aac9fef220be3ddfa941ab15c5c258cc75d82ab9938afcd977089b46b40790682d6f04"
         }
       ],
       "licenses" : [
@@ -222,7 +222,15 @@
       "url" : [
         "https://ant.apache.org/";
       ]
-    }
+    },
+    "licenses" : [
+      {
+        "license" : {
+          "id" : "Apache-2.0",
+          "url" : "https://www.apache.org/licenses/LICENSE-2.0.txt";
+        }
+      }
+    ]
   },
   "components" : [
     {
diff --git a/examples/ant-cyclonedx-0.1alpha-cyclonedx.xml 
b/examples/ant-cyclonedx-0.1alpha-cyclonedx.xml
index fdaad1b..dce7725 100644
--- a/examples/ant-cyclonedx-0.1alpha-cyclonedx.xml
+++ b/examples/ant-cyclonedx-0.1alpha-cyclonedx.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bom serialNumber="urn:uuid:82014c1b-0e26-4d7b-9fdb-66ab93e3675d" version="1" 
xmlns="http://cyclonedx.org/schema/bom/1.6";>
+<bom serialNumber="urn:uuid:21dba3be-d114-4229-b733-cc68124d216b" version="1" 
xmlns="http://cyclonedx.org/schema/bom/1.6";>
   <metadata>
-    <timestamp>2026-05-16T12:22:16Z</timestamp>
+    <timestamp>2026-05-16T12:30:30Z</timestamp>
     <lifecycles>
       <lifecycle>
         <phase>build</phase>
@@ -24,14 +24,14 @@
           <version>0.1alpha</version>
           <description>Apache CycloneDX Antlib</description>
           <hashes>
-            <hash alg="MD5">03f8c31a8616cbc686593c269d9d94d6</hash>
-            <hash alg="SHA-1">4167c654e68ecad826803cd44134bb13eb712bb1</hash>
-            <hash 
alg="SHA-256">5ac8ee9ad1ffaa927f49f6d41d6228a7e33aae4a2356074f5287c4d6223a8bb7</hash>
-            <hash 
alg="SHA-512">3b91efb9a8a1a2961e7cea72186a3eea5d076955d1404e2e257da700ad8dcd519a0fe315d873d6833e50442d4ad078372fa568495159ea77a2c35a578ead6756</hash>
-            <hash 
alg="SHA3-256">36e62b3d901a7ba849862bbca8f72e700f97f6c6106bfc834fedd2c11c993937</hash>
-            <hash 
alg="SHA3-512">3525bb060f97cb27b16a38827a422862996083af907aace7da6b235f484d0cf75c4973b71f4b1b96798747d71e3bc1b4d37af177f267def0dd7b081b9dd20530</hash>
-            <hash 
alg="SHA-384">62c64cd72d3b95f2aa94129468ed696d0df9c2e9f980dd3cef9d07dc8eea3eeeb959233c842c5a1f05927e9cf93e8031</hash>
-            <hash 
alg="SHA3-384">028fb03ab903abf7c87beb1d90d575008de67cd4ef53d9cfe11f7348fcab4f80f4f2e55ead544fca86370684664c3116</hash>
+            <hash alg="MD5">38390cefe49ce02d3c02ad74db7b099a</hash>
+            <hash alg="SHA-1">390e4fd2484c5fed5f9289dd74912ba80d40abbd</hash>
+            <hash 
alg="SHA-256">d5d579c74a21c109ef99fccb6b7a740f57298ba53483ca654a2afeb466f804ff</hash>
+            <hash 
alg="SHA-512">1dd6d7942d1446c05f5b01b0fb640e71c356b967840c5cf589f8cd154a89995135afdfc38c681ca9a5f0d91989b827646eb244a72df47dc760b9a46eb13177f2</hash>
+            <hash 
alg="SHA3-256">1f730b124f448e047e91a53c5fb6211543eeb482cbc9d3fa44d364f23676e9b0</hash>
+            <hash 
alg="SHA3-512">9cf3f3d4c16fc384f6be7e8d53f0c5e80c4f2320f1772a3024b7d52f7a7c6c5133dbd823e619fd9363186410a368943a286a84c8a6775484d1004b4502e056d1</hash>
+            <hash 
alg="SHA-384">864e9b5295b1899c72d1bc2d05df978921a87a133fc5cfbe046657269babac7554ebe001cb25814979cd1e57f31f1d8f</hash>
+            <hash 
alg="SHA3-384">46012688400d42980f7d10f3e9aac9fef220be3ddfa941ab15c5c258cc75d82ab9938afcd977089b46b40790682d6f04</hash>
           </hashes>
           <licenses>
             <license>
@@ -87,14 +87,14 @@
       <version>0.1alpha</version>
       <description>Apache CycloneDX Antlib</description>
       <hashes>
-        <hash alg="MD5">03f8c31a8616cbc686593c269d9d94d6</hash>
-        <hash alg="SHA-1">4167c654e68ecad826803cd44134bb13eb712bb1</hash>
-        <hash 
alg="SHA-256">5ac8ee9ad1ffaa927f49f6d41d6228a7e33aae4a2356074f5287c4d6223a8bb7</hash>
-        <hash 
alg="SHA-512">3b91efb9a8a1a2961e7cea72186a3eea5d076955d1404e2e257da700ad8dcd519a0fe315d873d6833e50442d4ad078372fa568495159ea77a2c35a578ead6756</hash>
-        <hash 
alg="SHA3-256">36e62b3d901a7ba849862bbca8f72e700f97f6c6106bfc834fedd2c11c993937</hash>
-        <hash 
alg="SHA3-512">3525bb060f97cb27b16a38827a422862996083af907aace7da6b235f484d0cf75c4973b71f4b1b96798747d71e3bc1b4d37af177f267def0dd7b081b9dd20530</hash>
-        <hash 
alg="SHA-384">62c64cd72d3b95f2aa94129468ed696d0df9c2e9f980dd3cef9d07dc8eea3eeeb959233c842c5a1f05927e9cf93e8031</hash>
-        <hash 
alg="SHA3-384">028fb03ab903abf7c87beb1d90d575008de67cd4ef53d9cfe11f7348fcab4f80f4f2e55ead544fca86370684664c3116</hash>
+        <hash alg="MD5">38390cefe49ce02d3c02ad74db7b099a</hash>
+        <hash alg="SHA-1">390e4fd2484c5fed5f9289dd74912ba80d40abbd</hash>
+        <hash 
alg="SHA-256">d5d579c74a21c109ef99fccb6b7a740f57298ba53483ca654a2afeb466f804ff</hash>
+        <hash 
alg="SHA-512">1dd6d7942d1446c05f5b01b0fb640e71c356b967840c5cf589f8cd154a89995135afdfc38c681ca9a5f0d91989b827646eb244a72df47dc760b9a46eb13177f2</hash>
+        <hash 
alg="SHA3-256">1f730b124f448e047e91a53c5fb6211543eeb482cbc9d3fa44d364f23676e9b0</hash>
+        <hash 
alg="SHA3-512">9cf3f3d4c16fc384f6be7e8d53f0c5e80c4f2320f1772a3024b7d52f7a7c6c5133dbd823e619fd9363186410a368943a286a84c8a6775484d1004b4502e056d1</hash>
+        <hash 
alg="SHA-384">864e9b5295b1899c72d1bc2d05df978921a87a133fc5cfbe046657269babac7554ebe001cb25814979cd1e57f31f1d8f</hash>
+        <hash 
alg="SHA3-384">46012688400d42980f7d10f3e9aac9fef220be3ddfa941ab15c5c258cc75d82ab9938afcd977089b46b40790682d6f04</hash>
       </hashes>
       <licenses>
         <license>
@@ -137,6 +137,12 @@
       <name>Apache Ant Development Team</name>
       <url>https://ant.apache.org/</url>
     </supplier>
+    <licenses>
+      <license>
+        <id>Apache-2.0</id>
+        <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      </license>
+    </licenses>
   </metadata>
   <components>
     <component type="library" 
bom-ref="pkg:maven/org.apache.ant/[email protected]?type=jar">
diff --git a/examples/ant-cyclonedx-0.1alpha-src.tar-cyclonedx.json 
b/examples/ant-cyclonedx-0.1alpha-src.tar-cyclonedx.json
index 5d76924..94c8764 100644
--- a/examples/ant-cyclonedx-0.1alpha-src.tar-cyclonedx.json
+++ b/examples/ant-cyclonedx-0.1alpha-src.tar-cyclonedx.json
@@ -1,10 +1,10 @@
 {
   "bomFormat" : "CycloneDX",
   "specVersion" : "1.6",
-  "serialNumber" : "urn:uuid:48957d31-114c-4d0e-aa96-21cd8225e1e6",
+  "serialNumber" : "urn:uuid:4176fd84-090e-4513-82e9-c0ed27327495",
   "version" : 1,
   "metadata" : {
-    "timestamp" : "2026-05-16T11:54:08Z",
+    "timestamp" : "2026-05-16T12:30:31Z",
     "lifecycles" : [
       {
         "phase" : "build"
@@ -34,35 +34,35 @@
           "hashes" : [
             {
               "alg" : "MD5",
-              "content" : "03f8c31a8616cbc686593c269d9d94d6"
+              "content" : "38390cefe49ce02d3c02ad74db7b099a"
             },
             {
               "alg" : "SHA-1",
-              "content" : "4167c654e68ecad826803cd44134bb13eb712bb1"
+              "content" : "390e4fd2484c5fed5f9289dd74912ba80d40abbd"
             },
             {
               "alg" : "SHA-256",
-              "content" : 
"5ac8ee9ad1ffaa927f49f6d41d6228a7e33aae4a2356074f5287c4d6223a8bb7"
+              "content" : 
"d5d579c74a21c109ef99fccb6b7a740f57298ba53483ca654a2afeb466f804ff"
             },
             {
               "alg" : "SHA-512",
-              "content" : 
"3b91efb9a8a1a2961e7cea72186a3eea5d076955d1404e2e257da700ad8dcd519a0fe315d873d6833e50442d4ad078372fa568495159ea77a2c35a578ead6756"
+              "content" : 
"1dd6d7942d1446c05f5b01b0fb640e71c356b967840c5cf589f8cd154a89995135afdfc38c681ca9a5f0d91989b827646eb244a72df47dc760b9a46eb13177f2"
             },
             {
               "alg" : "SHA3-256",
-              "content" : 
"36e62b3d901a7ba849862bbca8f72e700f97f6c6106bfc834fedd2c11c993937"
+              "content" : 
"1f730b124f448e047e91a53c5fb6211543eeb482cbc9d3fa44d364f23676e9b0"
             },
             {
               "alg" : "SHA3-512",
-              "content" : 
"3525bb060f97cb27b16a38827a422862996083af907aace7da6b235f484d0cf75c4973b71f4b1b96798747d71e3bc1b4d37af177f267def0dd7b081b9dd20530"
+              "content" : 
"9cf3f3d4c16fc384f6be7e8d53f0c5e80c4f2320f1772a3024b7d52f7a7c6c5133dbd823e619fd9363186410a368943a286a84c8a6775484d1004b4502e056d1"
             },
             {
               "alg" : "SHA-384",
-              "content" : 
"62c64cd72d3b95f2aa94129468ed696d0df9c2e9f980dd3cef9d07dc8eea3eeeb959233c842c5a1f05927e9cf93e8031"
+              "content" : 
"864e9b5295b1899c72d1bc2d05df978921a87a133fc5cfbe046657269babac7554ebe001cb25814979cd1e57f31f1d8f"
             },
             {
               "alg" : "SHA3-384",
-              "content" : 
"028fb03ab903abf7c87beb1d90d575008de67cd4ef53d9cfe11f7348fcab4f80f4f2e55ead544fca86370684664c3116"
+              "content" : 
"46012688400d42980f7d10f3e9aac9fef220be3ddfa941ab15c5c258cc75d82ab9938afcd977089b46b40790682d6f04"
             }
           ],
           "licenses" : [
@@ -185,7 +185,15 @@
       "url" : [
         "https://ant.apache.org/";
       ]
-    }
+    },
+    "licenses" : [
+      {
+        "license" : {
+          "id" : "Apache-2.0",
+          "url" : "https://www.apache.org/licenses/LICENSE-2.0.txt";
+        }
+      }
+    ]
   },
   "components" : [
     {
@@ -1334,35 +1342,35 @@
       "hashes" : [
         {
           "alg" : "MD5",
-          "content" : "59f1091adfb0884bf34d4ae1032efc26"
+          "content" : "12a8e14a76315a6ec6e845ed1bebe35b"
         },
         {
           "alg" : "SHA-1",
-          "content" : "2face7003240cfcc4851f4f9715d1a9552651822"
+          "content" : "f56075a95a4122c478314c66fa42cc330a8fe474"
         },
         {
           "alg" : "SHA-256",
-          "content" : 
"487eda15ed677ae35c21fefabe050aec48e57eccdaa818a0257fd2d667d175d4"
+          "content" : 
"7699a57b7c6fc39410a06ef486da1366d1ac43983fc85f11e56433f4219c91a9"
         },
         {
           "alg" : "SHA-512",
-          "content" : 
"8b8ff05c32f01598e86af10abc3d970aff0b6702f45c777a0469256d832bba41aeb6f42ae8026ccc5137efad7d2a7c75df5acc080c63895c3d02596f54ca83fe"
+          "content" : 
"b9b193fdcca0420d0153e6d34f0ae3cdcb542c5e4ee961e8e1c85a1adec2579f502b844bf41bb5da2ab4013d593597096b3782809f82b5010292063362318526"
         },
         {
           "alg" : "SHA3-256",
-          "content" : 
"780ae113ae56169f7d33b7fa09266cb19852989a52a4716b314dc2eb01ccae55"
+          "content" : 
"311f621a26ff2a4f2d766842053ff9b8367d966026b42af2174c9f195ff7c42d"
         },
         {
           "alg" : "SHA3-512",
-          "content" : 
"1ffa6263dba9efb7cb638bf142fd79bee32045387b7bcef00413b32ed300f0d08c010c23a7f3bcc1cafbca26a19c30ad061362d3601373c8fc8b29d6c7d8ac9b"
+          "content" : 
"e1363b08180fdae598b72539f0e9035d681d81fd1e66876d698e7ec1fa1fc9cf20c511d1a1e6113bb9402c015e64ec61f8bad1408212a254f58a22a879a3910c"
         },
         {
           "alg" : "SHA-384",
-          "content" : 
"9a9feca533fea5ff17b7065053b1beebaf5fc02e288c29ce8fe5708b6d171bf00c43748faf8436db7366d6d3890551f8"
+          "content" : 
"4fc9500894575575df0b9335cada39d6dd51acca8f260c3c42bf22e74b8246c69b3db8b122162a10bc35a33c86539cdb"
         },
         {
           "alg" : "SHA3-384",
-          "content" : 
"da55a5d7dca8eb5be7217dc793c012a14d1bbfdc2532788c538d1c712cd001acad39d37235071fa2cd86d6dce64633ff"
+          "content" : 
"cdfc4a3ae68fc5c1bcaac717a038bedb44538549b1d13b5a5ee436db818339355e3f0627381c0811843cb847354656f5"
         }
       ]
     },
@@ -1372,35 +1380,35 @@
       "hashes" : [
         {
           "alg" : "MD5",
-          "content" : "6e920bcf567131664d2ab2cbbe3f9835"
+          "content" : "16b90fa4efbf7b79b0d95f51ce7e400a"
         },
         {
           "alg" : "SHA-1",
-          "content" : "930c263b604cbca81e4bf9411a9f6105d2f64cb6"
+          "content" : "69d3f0f2298615bfaa4e09149ee3533141bddeaf"
         },
         {
           "alg" : "SHA-256",
-          "content" : 
"80e2a3c196e6538caf4d8332ad01eaaffa65d2a20374422c2042fc25ac6762ad"
+          "content" : 
"ba7491e32d12237b168c16755d2eece267b1895b7ddd1bf6aac24832a1da7966"
         },
         {
           "alg" : "SHA-512",
-          "content" : 
"fb5a637eb2e6f529b2b0bde9e0b86ed048baa6d3afee0311a5246c6ac1a57f7f6b79ff2d3798f980bd3e87c9b32c7a0c848041bac8ec65f1d3fabc7ee6e709de"
+          "content" : 
"80a02b9a015ec079c762a60dce749565bde134be92f59fc4a0db45ff78720b37b35ae2356ad77071ec08459f9e5e9d1bc21dade48c8487def6658dd0ef3367bf"
         },
         {
           "alg" : "SHA3-256",
-          "content" : 
"37ae9c827c6183d9eb2b61fa8ca2568ad0d2e725626e111e4f086250630e5f6e"
+          "content" : 
"9298beb118669d5e75a82b0cb6280bfd3776a7d74e17b73f7e393cae627bf070"
         },
         {
           "alg" : "SHA3-512",
-          "content" : 
"c52062c99bc6a99214210b844894b10a40eadeed2177ee3797e35892b8bc242251b8b60061dd96b051a0a81136ca985a26c2e7cfcf13170ce09b7b798e7882b1"
+          "content" : 
"4d1ea166f43379b07c1a9a507acdbfab2d707f753210abaf76c9178db65a855cbc7a12af1e9d7657b722d227ad0cf0d892ef6737c9321b348364c659ad9252b8"
         },
         {
           "alg" : "SHA-384",
-          "content" : 
"d80eab64731c63d4ba8e4bfbf1a6ec9676935743eb4971bb0c1f0622c7609e6780d32ad73ec5bf93ad973b7288233fb6"
+          "content" : 
"7ecac57bf07051b2e65e684cb0bacaac30be0f1c47acbc16015d99f6bd36583bc96eadec9093735d0e93ff8bba58b6c1"
         },
         {
           "alg" : "SHA3-384",
-          "content" : 
"22a8834194624bc8439ccf449654a9b5a1e430017fa7843dce31c971561562cbccedb7b8205fe5150901ceab189e32f1"
+          "content" : 
"b4092874c8b694de4f28bc58523f0c199b95a0c7b872c536c4f0cf92e78f40a4dcd569dd993b95065d81b7984b1771bd"
         }
       ]
     },
@@ -1410,35 +1418,35 @@
       "hashes" : [
         {
           "alg" : "MD5",
-          "content" : "152677ed40418a3a2d644d896c4c0ac8"
+          "content" : "937653f7f3fdb0b08853e68f36e58d23"
         },
         {
           "alg" : "SHA-1",
-          "content" : "029f288b151a2c82bea90316cd9790c12fb56e4d"
+          "content" : "650bc7e8d57ad8f7e3ab4936eecd495331fdc1a5"
         },
         {
           "alg" : "SHA-256",
-          "content" : 
"a9e7b39e0e45d687b0e7fe25398af11addf631f7ea7eee418aaed370ef3a9716"
+          "content" : 
"77ef4c03872b3ca2726d98d805b5253627d7e109344a3df9f00535e6e21e81d2"
         },
         {
           "alg" : "SHA-512",
-          "content" : 
"7f1a889a127a059c6bba93f13a839e73cc56b6aa7b70c4acb555ab14bb25219a49922fa34ec21d62320ee7583ca2963526d893698f22474e495e984bb8cba682"
+          "content" : 
"bba45e5cd2d2a20f9f2b8fb8859bab629503ee12f2d85d3be718afd1cfa977ced3bab1362403a1016dd5bcbbc726dbc765900ce9bfff1e81c643d7ea266f187f"
         },
         {
           "alg" : "SHA3-256",
-          "content" : 
"d7f598690eb61966488220413346f84e7c1590c7ef4d34a6996895c9a83d15a7"
+          "content" : 
"7334b116e0b8ef93731d3fea376e78998cc59be791f1aa1ab8e2bfca9fda9249"
         },
         {
           "alg" : "SHA3-512",
-          "content" : 
"30ab5ca42a996af4bba6abfbe3cd0c0a7a3cb018a885c6d1a1e90d00e0bd8d3f04ab77157ce84b212fc53427d257ca1977abfeab1506b2ef1227f229ccab1a1a"
+          "content" : 
"385ca6db3453a64e006a26a7f572d93db3e46d7f1d4224024a07d2f2a4c052dc8fbefffcad95c25a25b9057fbd4458ceeba23dbbd7967d23c3f3cf905c0f8f13"
         },
         {
           "alg" : "SHA-384",
-          "content" : 
"6e94c97b7af0df4b0e2cf09b96a6510806060c8a0f90ea44fd803b336083ba9dcb0e39c8457f6d9c45c8249971212988"
+          "content" : 
"2da2dac6a13d759d3614c5dc3cd92bdc2783a1fa82de7cbdbf37f100233f576149e94ed49d562e1c8b2f6d3672530644"
         },
         {
           "alg" : "SHA3-384",
-          "content" : 
"d70f09303966ceb0fea0c4d10848885c1009c353982346a5675e4006a584c0b5da83152867f07022118a77931fe3c21b"
+          "content" : 
"8e98261d0206c3b9ffa4ef58b4f44fdc943e8cff27bd6b90909fcd84eb4d6b27134e9cd1bbe76447cebf43d6589f218b"
         }
       ]
     },
@@ -1448,35 +1456,35 @@
       "hashes" : [
         {
           "alg" : "MD5",
-          "content" : "e1078780937a4f14b616b46302dd3097"
+          "content" : "f0539012870803e60c90196e0f7eadc9"
         },
         {
           "alg" : "SHA-1",
-          "content" : "ef6f3dae6ab2a9241d493e54116dfe1c2344bc36"
+          "content" : "3a70c5b1eb63b3288302e61d2c77a315565285c5"
         },
         {
           "alg" : "SHA-256",
-          "content" : 
"2fb9a8230e1ab716436c98e673711a6274b9054ccdc87accc98a8d2a3dedfe99"
+          "content" : 
"04a4c9293c0a0bc71173d81e5bf850100e5afbd3f2c9e2325d00d9b6d17a4de9"
         },
         {
           "alg" : "SHA-512",
-          "content" : 
"18955d0246176d80e2063c29299cef46bafa2303def4682d7112f3dc89ec5da9a0878a27a5a2afe7bb5b76703fa3efc39ea7f97f6600998eff9817d802ce48c2"
+          "content" : 
"bfb53a95ceb2ed3175ecae3af7018c86f01bd3cce01c170dfc277b2fb95a7cd888f45f43822eefd9d2cfc7abb4d16836b938c28f49eca34625356f402a05afdd"
         },
         {
           "alg" : "SHA3-256",
-          "content" : 
"9683cfa15049f18a80cbed7ce09f5ee2ff031a886e6172850eba08e577d21ed5"
+          "content" : 
"dafd4403cb7df4b37b078ee97711c66e502c973df0c86ae90d2b3c2a09909d27"
         },
         {
           "alg" : "SHA3-512",
-          "content" : 
"27becd8423826b9e94b24fc1f28b581aa3b1feb7970a03f5becf5c3261f5db24476580846881f2928e560fef75998c2a2f75d70a0f6c636fe8508df3c6aadad8"
+          "content" : 
"b5cd0415d9df9f403b584264f5c84125c99646535414009eb66fd42be018265dd4c7ed97e4f43b3dcb6602f9a3cee4994e98c8b1390e7820bea18630bbc136a7"
         },
         {
           "alg" : "SHA-384",
-          "content" : 
"93bb0a9bc84bccaed64e3c5a1db163af861e1056dce0ad0d4cdcde722967ef1c64aa8e4e3ab20d4fe4e26f5f155682de"
+          "content" : 
"51c24fe48df1b5d1721e4bb2ddffadd6078d4a7a71f4793b00e4e09947dd018eae35727caf62ab752e9f22b053225bfe"
         },
         {
           "alg" : "SHA3-384",
-          "content" : 
"adfcae51acf5b95dbb3fa4e812eaf849b13e3a116d07df5364d6ffcc64f97720e8212e71a7dcdd444ce7b3dd1dab70ad"
+          "content" : 
"6c9cce8cc1b71e5992fd29acd185d15413629d2fd47213b7a9e54445a96d15865e4f403d6073fd2614acddab6c1ade96"
         }
       ]
     },
@@ -1562,35 +1570,35 @@
       "hashes" : [
         {
           "alg" : "MD5",
-          "content" : "49a3c9dddbf13dec09dc191f42cabe3c"
+          "content" : "6e3353b5def86cbcb216ee625b91cd2b"
         },
         {
           "alg" : "SHA-1",
-          "content" : "27afa2565adf35d5128564faab56fc6c41d893a9"
+          "content" : "33f65b761d3eaada5cd43513fac77e70f4ee7b64"
         },
         {
           "alg" : "SHA-256",
-          "content" : 
"d878d826e071fa9d40553fd9724b9b599c11ddbfd9b32973df5279ae54c90090"
+          "content" : 
"7d6f27b5007a480c8f5f83d95c696416ed2dfe58232bad05376333e9f7a047c9"
         },
         {
           "alg" : "SHA-512",
-          "content" : 
"93753bbf75aecddceef43df3be5a90fab9ac04597f6b336483d6ac298e4325a7f692815c95a18ed008b0e137de509a52353640f15b0c7291ca89615db79f576b"
+          "content" : 
"ab5768e87000f03a75301c8633830b84dec52a9b8f75aa781afcf718993da86eea81734684f8227663b324bcd3d24e78f2c382cd65ae4197f362d14e0e9061a6"
         },
         {
           "alg" : "SHA3-256",
-          "content" : 
"8c4daaa2d6bc71496986d855f475041ad5138b609c2ec6f70ef49568ff53bb6a"
+          "content" : 
"8495416553430a4b088cf334a44a2219198b34d868437f7273a91e7da99e7c7e"
         },
         {
           "alg" : "SHA3-512",
-          "content" : 
"51e1cfcc073268412d1389ad41456a96dfeb15cb1fbc1d25b9eb5d594b1c5c480d1544adffec4165e79408079f29e99561840b31bc3ddfae63615d7bf354e450"
+          "content" : 
"f0861ac12ba5bca35765052a7134b66f2369aac99ff2be86fdf10663f00ea4de14039d221962c7152862e0cf3d99d6117dece302ffa72cfb0bec56c1ef56094d"
         },
         {
           "alg" : "SHA-384",
-          "content" : 
"44b29ae98f380e7f56201c049f32babf17b7b7bb844ffeafc73608335c84d034e0fd157410583487468e12c2e4ca6d19"
+          "content" : 
"09325b6877e61600804a7943e1ff5de6c63b6393111eced35ac98c7b387ecee82db05607791d64e437812be4c0f844f1"
         },
         {
           "alg" : "SHA3-384",
-          "content" : 
"1862ceea4023a08cdb823f1d7806ae01a4e3f5aac4c35c3c282e9652dbcdeb0e1f3f608480c7605972bc777af218613c"
+          "content" : 
"b8bda521dd5cdfee446f994dfc188ecbe69c594a539af284daca1ec2a70e8c6096b6d76b1e24e63a1d1908229d1b940b"
         }
       ]
     },
@@ -2056,35 +2064,35 @@
       "hashes" : [
         {
           "alg" : "MD5",
-          "content" : "67057a9eb1b390bc94c495a602207f09"
+          "content" : "a304cbcc6b7f5dd14786b942b3a946b8"
         },
         {
           "alg" : "SHA-1",
-          "content" : "9b8edc71540201b54fed08fb32b3627b0b21f6bb"
+          "content" : "cf1c0084aa4de7e1a0b93f44656de9ba37532b9d"
         },
         {
           "alg" : "SHA-256",
-          "content" : 
"685344c6ea2bb87cba0284025e5dc8a040a4f2bcc28e78460bbb6c7d49f95c48"
+          "content" : 
"f72cb807a0b9a2e70188fea8af3637b08917fb94daacc878dd6629df3bd958e2"
         },
         {
           "alg" : "SHA-512",
-          "content" : 
"7643ba35ccbbd93d2a5b3849bce5fe050413298b91a6f4414f63c17560cc0e32b3d15d6583d1f802c5e2acb4063099aaceb61933398fb7ac4e781777c6476e18"
+          "content" : 
"1796b2397b05c6467058faad8e497f5f6bb75980d83f0b6ae48145a0afc72dc64872737c122d647eb35736b98ec3ff3fee7f5ea368510d689a1e147168d29c48"
         },
         {
           "alg" : "SHA3-256",
-          "content" : 
"3bec4b7ca57ffe1abf6b4ca93d5ee6f1eda771dee1e33150637bd3abe3087145"
+          "content" : 
"1164a9d5f063a5f04e6987f0b2a54ddb03654e705644f1c8510828a117afdbbf"
         },
         {
           "alg" : "SHA3-512",
-          "content" : 
"7472e601015ee423b67c1c43bd5af127143858b894ce2544db0db46c71c5de596b418f8b51888d16b58ff3125f896602db9f8343c5ed0f3201b79e82d7cbf6a7"
+          "content" : 
"7153532394029afd449bd4f581941ca82c0bfef484169a543aca44829178fe7fad6c34bf666ccde2e1db8498d0fc66f9338292990cca694e9827c75b5ebac680"
         },
         {
           "alg" : "SHA-384",
-          "content" : 
"7c46db9217720bab59c01eb9c150b13e06e5bfe186fc39c4b0d921055e3023dc017cf3d5e7e255410d0df01938d368e5"
+          "content" : 
"ff31c7104b7789ad4626107e46b47fb6ab005c5ebdf842e39bac8e0a3d00447110ddb437be865e0e0488cd867391c447"
         },
         {
           "alg" : "SHA3-384",
-          "content" : 
"38f8090b3b2ca9b17af63dc0c3d4660151f73342052c49ac44b64071882ffc74ca1c5d0f83db4d5c0773404b9df97f46"
+          "content" : 
"676d07f87febcb548e153ca83c41dd887eb4c2261378211b489252f7132576fed1be58c092c89a66778b64327e6ef794"
         }
       ]
     },
diff --git a/examples/ant-cyclonedx-0.1alpha-src.tar-cyclonedx.xml 
b/examples/ant-cyclonedx-0.1alpha-src.tar-cyclonedx.xml
index d1d7386..8acd1c4 100644
--- a/examples/ant-cyclonedx-0.1alpha-src.tar-cyclonedx.xml
+++ b/examples/ant-cyclonedx-0.1alpha-src.tar-cyclonedx.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bom serialNumber="urn:uuid:48957d31-114c-4d0e-aa96-21cd8225e1e6" version="1" 
xmlns="http://cyclonedx.org/schema/bom/1.6";>
+<bom serialNumber="urn:uuid:4176fd84-090e-4513-82e9-c0ed27327495" version="1" 
xmlns="http://cyclonedx.org/schema/bom/1.6";>
   <metadata>
-    <timestamp>2026-05-16T11:54:08Z</timestamp>
+    <timestamp>2026-05-16T12:30:31Z</timestamp>
     <lifecycles>
       <lifecycle>
         <phase>build</phase>
@@ -24,14 +24,14 @@
           <version>0.1alpha</version>
           <description>Apache CycloneDX Antlib</description>
           <hashes>
-            <hash alg="MD5">03f8c31a8616cbc686593c269d9d94d6</hash>
-            <hash alg="SHA-1">4167c654e68ecad826803cd44134bb13eb712bb1</hash>
-            <hash 
alg="SHA-256">5ac8ee9ad1ffaa927f49f6d41d6228a7e33aae4a2356074f5287c4d6223a8bb7</hash>
-            <hash 
alg="SHA-512">3b91efb9a8a1a2961e7cea72186a3eea5d076955d1404e2e257da700ad8dcd519a0fe315d873d6833e50442d4ad078372fa568495159ea77a2c35a578ead6756</hash>
-            <hash 
alg="SHA3-256">36e62b3d901a7ba849862bbca8f72e700f97f6c6106bfc834fedd2c11c993937</hash>
-            <hash 
alg="SHA3-512">3525bb060f97cb27b16a38827a422862996083af907aace7da6b235f484d0cf75c4973b71f4b1b96798747d71e3bc1b4d37af177f267def0dd7b081b9dd20530</hash>
-            <hash 
alg="SHA-384">62c64cd72d3b95f2aa94129468ed696d0df9c2e9f980dd3cef9d07dc8eea3eeeb959233c842c5a1f05927e9cf93e8031</hash>
-            <hash 
alg="SHA3-384">028fb03ab903abf7c87beb1d90d575008de67cd4ef53d9cfe11f7348fcab4f80f4f2e55ead544fca86370684664c3116</hash>
+            <hash alg="MD5">38390cefe49ce02d3c02ad74db7b099a</hash>
+            <hash alg="SHA-1">390e4fd2484c5fed5f9289dd74912ba80d40abbd</hash>
+            <hash 
alg="SHA-256">d5d579c74a21c109ef99fccb6b7a740f57298ba53483ca654a2afeb466f804ff</hash>
+            <hash 
alg="SHA-512">1dd6d7942d1446c05f5b01b0fb640e71c356b967840c5cf589f8cd154a89995135afdfc38c681ca9a5f0d91989b827646eb244a72df47dc760b9a46eb13177f2</hash>
+            <hash 
alg="SHA3-256">1f730b124f448e047e91a53c5fb6211543eeb482cbc9d3fa44d364f23676e9b0</hash>
+            <hash 
alg="SHA3-512">9cf3f3d4c16fc384f6be7e8d53f0c5e80c4f2320f1772a3024b7d52f7a7c6c5133dbd823e619fd9363186410a368943a286a84c8a6775484d1004b4502e056d1</hash>
+            <hash 
alg="SHA-384">864e9b5295b1899c72d1bc2d05df978921a87a133fc5cfbe046657269babac7554ebe001cb25814979cd1e57f31f1d8f</hash>
+            <hash 
alg="SHA3-384">46012688400d42980f7d10f3e9aac9fef220be3ddfa941ab15c5c258cc75d82ab9938afcd977089b46b40790682d6f04</hash>
           </hashes>
           <licenses>
             <license>
@@ -125,6 +125,12 @@
       <name>Apache Ant Development Team</name>
       <url>https://ant.apache.org/</url>
     </supplier>
+    <licenses>
+      <license>
+        <id>Apache-2.0</id>
+        <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      </license>
+    </licenses>
   </metadata>
   <components>
     <component type="file">
@@ -520,53 +526,53 @@
     <component type="file">
       <name>examples/ant-cyclonedx-0.1alpha-cyclonedx.json</name>
       <hashes>
-        <hash alg="MD5">59f1091adfb0884bf34d4ae1032efc26</hash>
-        <hash alg="SHA-1">2face7003240cfcc4851f4f9715d1a9552651822</hash>
-        <hash 
alg="SHA-256">487eda15ed677ae35c21fefabe050aec48e57eccdaa818a0257fd2d667d175d4</hash>
-        <hash 
alg="SHA-512">8b8ff05c32f01598e86af10abc3d970aff0b6702f45c777a0469256d832bba41aeb6f42ae8026ccc5137efad7d2a7c75df5acc080c63895c3d02596f54ca83fe</hash>
-        <hash 
alg="SHA3-256">780ae113ae56169f7d33b7fa09266cb19852989a52a4716b314dc2eb01ccae55</hash>
-        <hash 
alg="SHA3-512">1ffa6263dba9efb7cb638bf142fd79bee32045387b7bcef00413b32ed300f0d08c010c23a7f3bcc1cafbca26a19c30ad061362d3601373c8fc8b29d6c7d8ac9b</hash>
-        <hash 
alg="SHA-384">9a9feca533fea5ff17b7065053b1beebaf5fc02e288c29ce8fe5708b6d171bf00c43748faf8436db7366d6d3890551f8</hash>
-        <hash 
alg="SHA3-384">da55a5d7dca8eb5be7217dc793c012a14d1bbfdc2532788c538d1c712cd001acad39d37235071fa2cd86d6dce64633ff</hash>
+        <hash alg="MD5">12a8e14a76315a6ec6e845ed1bebe35b</hash>
+        <hash alg="SHA-1">f56075a95a4122c478314c66fa42cc330a8fe474</hash>
+        <hash 
alg="SHA-256">7699a57b7c6fc39410a06ef486da1366d1ac43983fc85f11e56433f4219c91a9</hash>
+        <hash 
alg="SHA-512">b9b193fdcca0420d0153e6d34f0ae3cdcb542c5e4ee961e8e1c85a1adec2579f502b844bf41bb5da2ab4013d593597096b3782809f82b5010292063362318526</hash>
+        <hash 
alg="SHA3-256">311f621a26ff2a4f2d766842053ff9b8367d966026b42af2174c9f195ff7c42d</hash>
+        <hash 
alg="SHA3-512">e1363b08180fdae598b72539f0e9035d681d81fd1e66876d698e7ec1fa1fc9cf20c511d1a1e6113bb9402c015e64ec61f8bad1408212a254f58a22a879a3910c</hash>
+        <hash 
alg="SHA-384">4fc9500894575575df0b9335cada39d6dd51acca8f260c3c42bf22e74b8246c69b3db8b122162a10bc35a33c86539cdb</hash>
+        <hash 
alg="SHA3-384">cdfc4a3ae68fc5c1bcaac717a038bedb44538549b1d13b5a5ee436db818339355e3f0627381c0811843cb847354656f5</hash>
       </hashes>
     </component>
     <component type="file">
       <name>examples/ant-cyclonedx-0.1alpha-cyclonedx.xml</name>
       <hashes>
-        <hash alg="MD5">6e920bcf567131664d2ab2cbbe3f9835</hash>
-        <hash alg="SHA-1">930c263b604cbca81e4bf9411a9f6105d2f64cb6</hash>
-        <hash 
alg="SHA-256">80e2a3c196e6538caf4d8332ad01eaaffa65d2a20374422c2042fc25ac6762ad</hash>
-        <hash 
alg="SHA-512">fb5a637eb2e6f529b2b0bde9e0b86ed048baa6d3afee0311a5246c6ac1a57f7f6b79ff2d3798f980bd3e87c9b32c7a0c848041bac8ec65f1d3fabc7ee6e709de</hash>
-        <hash 
alg="SHA3-256">37ae9c827c6183d9eb2b61fa8ca2568ad0d2e725626e111e4f086250630e5f6e</hash>
-        <hash 
alg="SHA3-512">c52062c99bc6a99214210b844894b10a40eadeed2177ee3797e35892b8bc242251b8b60061dd96b051a0a81136ca985a26c2e7cfcf13170ce09b7b798e7882b1</hash>
-        <hash 
alg="SHA-384">d80eab64731c63d4ba8e4bfbf1a6ec9676935743eb4971bb0c1f0622c7609e6780d32ad73ec5bf93ad973b7288233fb6</hash>
-        <hash 
alg="SHA3-384">22a8834194624bc8439ccf449654a9b5a1e430017fa7843dce31c971561562cbccedb7b8205fe5150901ceab189e32f1</hash>
+        <hash alg="MD5">16b90fa4efbf7b79b0d95f51ce7e400a</hash>
+        <hash alg="SHA-1">69d3f0f2298615bfaa4e09149ee3533141bddeaf</hash>
+        <hash 
alg="SHA-256">ba7491e32d12237b168c16755d2eece267b1895b7ddd1bf6aac24832a1da7966</hash>
+        <hash 
alg="SHA-512">80a02b9a015ec079c762a60dce749565bde134be92f59fc4a0db45ff78720b37b35ae2356ad77071ec08459f9e5e9d1bc21dade48c8487def6658dd0ef3367bf</hash>
+        <hash 
alg="SHA3-256">9298beb118669d5e75a82b0cb6280bfd3776a7d74e17b73f7e393cae627bf070</hash>
+        <hash 
alg="SHA3-512">4d1ea166f43379b07c1a9a507acdbfab2d707f753210abaf76c9178db65a855cbc7a12af1e9d7657b722d227ad0cf0d892ef6737c9321b348364c659ad9252b8</hash>
+        <hash 
alg="SHA-384">7ecac57bf07051b2e65e684cb0bacaac30be0f1c47acbc16015d99f6bd36583bc96eadec9093735d0e93ff8bba58b6c1</hash>
+        <hash 
alg="SHA3-384">b4092874c8b694de4f28bc58523f0c199b95a0c7b872c536c4f0cf92e78f40a4dcd569dd993b95065d81b7984b1771bd</hash>
       </hashes>
     </component>
     <component type="file">
       <name>examples/ant-cyclonedx-0.1alpha-src.tar-cyclonedx.json</name>
       <hashes>
-        <hash alg="MD5">152677ed40418a3a2d644d896c4c0ac8</hash>
-        <hash alg="SHA-1">029f288b151a2c82bea90316cd9790c12fb56e4d</hash>
-        <hash 
alg="SHA-256">a9e7b39e0e45d687b0e7fe25398af11addf631f7ea7eee418aaed370ef3a9716</hash>
-        <hash 
alg="SHA-512">7f1a889a127a059c6bba93f13a839e73cc56b6aa7b70c4acb555ab14bb25219a49922fa34ec21d62320ee7583ca2963526d893698f22474e495e984bb8cba682</hash>
-        <hash 
alg="SHA3-256">d7f598690eb61966488220413346f84e7c1590c7ef4d34a6996895c9a83d15a7</hash>
-        <hash 
alg="SHA3-512">30ab5ca42a996af4bba6abfbe3cd0c0a7a3cb018a885c6d1a1e90d00e0bd8d3f04ab77157ce84b212fc53427d257ca1977abfeab1506b2ef1227f229ccab1a1a</hash>
-        <hash 
alg="SHA-384">6e94c97b7af0df4b0e2cf09b96a6510806060c8a0f90ea44fd803b336083ba9dcb0e39c8457f6d9c45c8249971212988</hash>
-        <hash 
alg="SHA3-384">d70f09303966ceb0fea0c4d10848885c1009c353982346a5675e4006a584c0b5da83152867f07022118a77931fe3c21b</hash>
+        <hash alg="MD5">937653f7f3fdb0b08853e68f36e58d23</hash>
+        <hash alg="SHA-1">650bc7e8d57ad8f7e3ab4936eecd495331fdc1a5</hash>
+        <hash 
alg="SHA-256">77ef4c03872b3ca2726d98d805b5253627d7e109344a3df9f00535e6e21e81d2</hash>
+        <hash 
alg="SHA-512">bba45e5cd2d2a20f9f2b8fb8859bab629503ee12f2d85d3be718afd1cfa977ced3bab1362403a1016dd5bcbbc726dbc765900ce9bfff1e81c643d7ea266f187f</hash>
+        <hash 
alg="SHA3-256">7334b116e0b8ef93731d3fea376e78998cc59be791f1aa1ab8e2bfca9fda9249</hash>
+        <hash 
alg="SHA3-512">385ca6db3453a64e006a26a7f572d93db3e46d7f1d4224024a07d2f2a4c052dc8fbefffcad95c25a25b9057fbd4458ceeba23dbbd7967d23c3f3cf905c0f8f13</hash>
+        <hash 
alg="SHA-384">2da2dac6a13d759d3614c5dc3cd92bdc2783a1fa82de7cbdbf37f100233f576149e94ed49d562e1c8b2f6d3672530644</hash>
+        <hash 
alg="SHA3-384">8e98261d0206c3b9ffa4ef58b4f44fdc943e8cff27bd6b90909fcd84eb4d6b27134e9cd1bbe76447cebf43d6589f218b</hash>
       </hashes>
     </component>
     <component type="file">
       <name>examples/ant-cyclonedx-0.1alpha-src.tar-cyclonedx.xml</name>
       <hashes>
-        <hash alg="MD5">e1078780937a4f14b616b46302dd3097</hash>
-        <hash alg="SHA-1">ef6f3dae6ab2a9241d493e54116dfe1c2344bc36</hash>
-        <hash 
alg="SHA-256">2fb9a8230e1ab716436c98e673711a6274b9054ccdc87accc98a8d2a3dedfe99</hash>
-        <hash 
alg="SHA-512">18955d0246176d80e2063c29299cef46bafa2303def4682d7112f3dc89ec5da9a0878a27a5a2afe7bb5b76703fa3efc39ea7f97f6600998eff9817d802ce48c2</hash>
-        <hash 
alg="SHA3-256">9683cfa15049f18a80cbed7ce09f5ee2ff031a886e6172850eba08e577d21ed5</hash>
-        <hash 
alg="SHA3-512">27becd8423826b9e94b24fc1f28b581aa3b1feb7970a03f5becf5c3261f5db24476580846881f2928e560fef75998c2a2f75d70a0f6c636fe8508df3c6aadad8</hash>
-        <hash 
alg="SHA-384">93bb0a9bc84bccaed64e3c5a1db163af861e1056dce0ad0d4cdcde722967ef1c64aa8e4e3ab20d4fe4e26f5f155682de</hash>
-        <hash 
alg="SHA3-384">adfcae51acf5b95dbb3fa4e812eaf849b13e3a116d07df5364d6ffcc64f97720e8212e71a7dcdd444ce7b3dd1dab70ad</hash>
+        <hash alg="MD5">f0539012870803e60c90196e0f7eadc9</hash>
+        <hash alg="SHA-1">3a70c5b1eb63b3288302e61d2c77a315565285c5</hash>
+        <hash 
alg="SHA-256">04a4c9293c0a0bc71173d81e5bf850100e5afbd3f2c9e2325d00d9b6d17a4de9</hash>
+        <hash 
alg="SHA-512">bfb53a95ceb2ed3175ecae3af7018c86f01bd3cce01c170dfc277b2fb95a7cd888f45f43822eefd9d2cfc7abb4d16836b938c28f49eca34625356f402a05afdd</hash>
+        <hash 
alg="SHA3-256">dafd4403cb7df4b37b078ee97711c66e502c973df0c86ae90d2b3c2a09909d27</hash>
+        <hash 
alg="SHA3-512">b5cd0415d9df9f403b584264f5c84125c99646535414009eb66fd42be018265dd4c7ed97e4f43b3dcb6602f9a3cee4994e98c8b1390e7820bea18630bbc136a7</hash>
+        <hash 
alg="SHA-384">51c24fe48df1b5d1721e4bb2ddffadd6078d4a7a71f4793b00e4e09947dd018eae35727caf62ab752e9f22b053225bfe</hash>
+        <hash 
alg="SHA3-384">6c9cce8cc1b71e5992fd29acd185d15413629d2fd47213b7a9e54445a96d15865e4f403d6073fd2614acddab6c1ade96</hash>
       </hashes>
     </component>
     <component type="file">
@@ -598,14 +604,14 @@
     <component type="file">
       <name>src/main/org/apache/ant/cyclonedx/ComponentBomTask.java</name>
       <hashes>
-        <hash alg="MD5">49a3c9dddbf13dec09dc191f42cabe3c</hash>
-        <hash alg="SHA-1">27afa2565adf35d5128564faab56fc6c41d893a9</hash>
-        <hash 
alg="SHA-256">d878d826e071fa9d40553fd9724b9b599c11ddbfd9b32973df5279ae54c90090</hash>
-        <hash 
alg="SHA-512">93753bbf75aecddceef43df3be5a90fab9ac04597f6b336483d6ac298e4325a7f692815c95a18ed008b0e137de509a52353640f15b0c7291ca89615db79f576b</hash>
-        <hash 
alg="SHA3-256">8c4daaa2d6bc71496986d855f475041ad5138b609c2ec6f70ef49568ff53bb6a</hash>
-        <hash 
alg="SHA3-512">51e1cfcc073268412d1389ad41456a96dfeb15cb1fbc1d25b9eb5d594b1c5c480d1544adffec4165e79408079f29e99561840b31bc3ddfae63615d7bf354e450</hash>
-        <hash 
alg="SHA-384">44b29ae98f380e7f56201c049f32babf17b7b7bb844ffeafc73608335c84d034e0fd157410583487468e12c2e4ca6d19</hash>
-        <hash 
alg="SHA3-384">1862ceea4023a08cdb823f1d7806ae01a4e3f5aac4c35c3c282e9652dbcdeb0e1f3f608480c7605972bc777af218613c</hash>
+        <hash alg="MD5">6e3353b5def86cbcb216ee625b91cd2b</hash>
+        <hash alg="SHA-1">33f65b761d3eaada5cd43513fac77e70f4ee7b64</hash>
+        <hash 
alg="SHA-256">7d6f27b5007a480c8f5f83d95c696416ed2dfe58232bad05376333e9f7a047c9</hash>
+        <hash 
alg="SHA-512">ab5768e87000f03a75301c8633830b84dec52a9b8f75aa781afcf718993da86eea81734684f8227663b324bcd3d24e78f2c382cd65ae4197f362d14e0e9061a6</hash>
+        <hash 
alg="SHA3-256">8495416553430a4b088cf334a44a2219198b34d868437f7273a91e7da99e7c7e</hash>
+        <hash 
alg="SHA3-512">f0861ac12ba5bca35765052a7134b66f2369aac99ff2be86fdf10663f00ea4de14039d221962c7152862e0cf3d99d6117dece302ffa72cfb0bec56c1ef56094d</hash>
+        <hash 
alg="SHA-384">09325b6877e61600804a7943e1ff5de6c63b6393111eced35ac98c7b387ecee82db05607791d64e437812be4c0f844f1</hash>
+        <hash 
alg="SHA3-384">b8bda521dd5cdfee446f994dfc188ecbe69c594a539af284daca1ec2a70e8c6096b6d76b1e24e63a1d1908229d1b940b</hash>
       </hashes>
     </component>
     <component type="file">
@@ -767,14 +773,14 @@
     <component type="file">
       <name>src/tests/antunit/componentbom-test.xml</name>
       <hashes>
-        <hash alg="MD5">67057a9eb1b390bc94c495a602207f09</hash>
-        <hash alg="SHA-1">9b8edc71540201b54fed08fb32b3627b0b21f6bb</hash>
-        <hash 
alg="SHA-256">685344c6ea2bb87cba0284025e5dc8a040a4f2bcc28e78460bbb6c7d49f95c48</hash>
-        <hash 
alg="SHA-512">7643ba35ccbbd93d2a5b3849bce5fe050413298b91a6f4414f63c17560cc0e32b3d15d6583d1f802c5e2acb4063099aaceb61933398fb7ac4e781777c6476e18</hash>
-        <hash 
alg="SHA3-256">3bec4b7ca57ffe1abf6b4ca93d5ee6f1eda771dee1e33150637bd3abe3087145</hash>
-        <hash 
alg="SHA3-512">7472e601015ee423b67c1c43bd5af127143858b894ce2544db0db46c71c5de596b418f8b51888d16b58ff3125f896602db9f8343c5ed0f3201b79e82d7cbf6a7</hash>
-        <hash 
alg="SHA-384">7c46db9217720bab59c01eb9c150b13e06e5bfe186fc39c4b0d921055e3023dc017cf3d5e7e255410d0df01938d368e5</hash>
-        <hash 
alg="SHA3-384">38f8090b3b2ca9b17af63dc0c3d4660151f73342052c49ac44b64071882ffc74ca1c5d0f83db4d5c0773404b9df97f46</hash>
+        <hash alg="MD5">a304cbcc6b7f5dd14786b942b3a946b8</hash>
+        <hash alg="SHA-1">cf1c0084aa4de7e1a0b93f44656de9ba37532b9d</hash>
+        <hash 
alg="SHA-256">f72cb807a0b9a2e70188fea8af3637b08917fb94daacc878dd6629df3bd958e2</hash>
+        <hash 
alg="SHA-512">1796b2397b05c6467058faad8e497f5f6bb75980d83f0b6ae48145a0afc72dc64872737c122d647eb35736b98ec3ff3fee7f5ea368510d689a1e147168d29c48</hash>
+        <hash 
alg="SHA3-256">1164a9d5f063a5f04e6987f0b2a54ddb03654e705644f1c8510828a117afdbbf</hash>
+        <hash 
alg="SHA3-512">7153532394029afd449bd4f581941ca82c0bfef484169a543aca44829178fe7fad6c34bf666ccde2e1db8498d0fc66f9338292990cca694e9827c75b5ebac680</hash>
+        <hash 
alg="SHA-384">ff31c7104b7789ad4626107e46b47fb6ab005c5ebdf842e39bac8e0a3d00447110ddb437be865e0e0488cd867391c447</hash>
+        <hash 
alg="SHA3-384">676d07f87febcb548e153ca83c41dd887eb4c2261378211b489252f7132576fed1be58c092c89a66778b64327e6ef794</hash>
       </hashes>
     </component>
     <component type="file">
diff --git a/src/main/org/apache/ant/cyclonedx/ComponentBomTask.java 
b/src/main/org/apache/ant/cyclonedx/ComponentBomTask.java
index 91d4d85..887ec44 100644
--- a/src/main/org/apache/ant/cyclonedx/ComponentBomTask.java
+++ b/src/main/org/apache/ant/cyclonedx/ComponentBomTask.java
@@ -28,6 +28,7 @@ import org.cyclonedx.generators.json.BomJsonGenerator;
 import org.cyclonedx.generators.xml.BomXmlGenerator;
 import org.cyclonedx.model.Bom;
 import org.cyclonedx.model.Dependency;
+import org.cyclonedx.model.LicenseChoice;
 import org.cyclonedx.model.LifecycleChoice;
 import org.cyclonedx.model.Lifecycles;
 import org.cyclonedx.model.Metadata;
@@ -48,6 +49,7 @@ public class ComponentBomTask extends Task {
     private Organization supplier = null;
     private boolean useComponentSupplier = false;
     private Union pureFileComponents = new Union();
+    private List<org.cyclonedx.model.License> licenses = new ArrayList<>();
 
     public void setOutputDirectory(File f) {
         outputDirectory = f;
@@ -101,6 +103,13 @@ public class ComponentBomTask extends Task {
         return pureFileComponents;
     }
 
+    /**
+     * Adds a license to the SBOM's metadata.
+     */
+    public void addConfiguredLicense(License l) {
+        licenses.add(l.toCycloneDxLicense());
+    }
+
     public void execute() {
         if (supplier != null && useComponentSupplier) {
             throw new BuildException("can't use component's supplier when 
there is an explicit supplier");
@@ -131,6 +140,11 @@ public class ComponentBomTask extends Task {
         Metadata meta = new Metadata();
         meta.setTimestamp(new Date());
         
meta.setToolChoice(ToolData.getToolInformation(specVersion.getVersion()));
+        if (!licenses.isEmpty()) {
+            LicenseChoice lc = new LicenseChoice();
+            lc.setLicenses(licenses);
+            meta.setLicenses(lc);
+        }
 
         Lifecycles l = new Lifecycles();
         LifecycleChoice lc = new LifecycleChoice();
diff --git a/src/tests/antunit/componentbom-test.xml 
b/src/tests/antunit/componentbom-test.xml
index 47dfd55..204e180 100644
--- a/src/tests/antunit/componentbom-test.xml
+++ b/src/tests/antunit/componentbom-test.xml
@@ -393,6 +393,7 @@
           <file file="resources/cyclonedx-core-java-12.2.0-cyclonedx.json"/>
         </sbomLink>
       </additionalComponent>
+      <license refid="apache-2"/>
     </cdx:componentbom>
     <au:assertFileExists
         xmlns:au="antlib:org.apache.ant.antunit"
@@ -432,6 +433,7 @@
           <exclude name="target/"/>
         </fileset>
       </pureFileComponents>
+      <license refid="apache-2"/>
     </cdx:componentbom>
     <copy todir="${java.io.tmpdir}">
       <fileset dir="${output}" includes="ant-cyclonedx*"/>


Reply via email to