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

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

commit 080da9854589f41758595bc2aa148190d26121a7
Author: Stefan Bodewig <[email protected]>
AuthorDate: Sun May 24 10:33:43 2026 +0200

    start building a few SBOMs
---
 build.xml | 225 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 220 insertions(+), 5 deletions(-)

diff --git a/build.xml b/build.xml
index 5fd0edecf..b66861cbf 100644
--- a/build.xml
+++ b/build.xml
@@ -46,7 +46,7 @@
   <property name="optional.package" value="${taskdefs.package}/optional"/>
   <property name="type.package" value="${ant.package}/types"/>
   <property name="optional.type.package" value="${type.package}/optional"/>
-  <property name="apache.resolver.type.package" 
value="${type.package}/resolver"/>
+  <property name="apache-resolver.type.package" 
value="${type.package}/resolver"/>
   <property name="util.package" value="${ant.package}/util"/>
   <property name="regexp.package" value="${util.package}/regexp"/>
 
@@ -193,7 +193,7 @@
   </selector>
 
   <selector id="needs.apache-resolver">
-    <filename name="${apache.resolver.type.package}/"/>
+    <filename name="${apache-resolver.type.package}/"/>
   </selector>
 
   <selector id="needs.junit">
@@ -446,7 +446,7 @@
     <available property="netrexx.present"
                classname="netrexx.lang.Rexx"
                classpathref="classpath" 
ignoresystemclasses="${ignoresystemclasses}"/>
-    <available property="apache.resolver.present"
+    <available property="apache-resolver.present"
                classname="org.apache.xml.resolver.tools.CatalogResolver"
                classpathref="classpath" 
ignoresystemclasses="${ignoresystemclasses}"/>
     <available property="recent.xalan2.present"
@@ -723,7 +723,7 @@
           <or>
             <selector refid="needs.jdk9+"/>
             <selector refid="not.in.kaffe" if="kaffe"/>
-            <selector refid="needs.apache-resolver" 
unless="apache.resolver.present"/>
+            <selector refid="needs.apache-resolver" 
unless="apache-resolver.present"/>
             <selector refid="needs.junit" unless="junit.present"/> <!-- TODO 
should perhaps use -source 1.4? -->
             <selector refid="needs.junit4" unless="junit4.present"/>
             <selector refid="needs.junitlauncher" 
unless="junitlauncher.present"/>
@@ -2020,7 +2020,7 @@ ${antunit.reports}
 
           <!-- needs resolver.jar to work -->
           <exclude name="${optional.package}/XmlValidateCatalogTest.java"
-                   unless="apache.resolver.present"/>
+                   unless="apache-resolver.present"/>
 
           <!-- needs jasperc -->
           <exclude name="${optional.package}/JspcTest.java"
@@ -2217,4 +2217,219 @@ ${antunit.reports}
     </dn:wix>
   </target>
 
+  <!--
+       ===================================================================
+         CycloneDX targets - create SBOMs
+       ===================================================================
+  -->
+  <available property="cyclonedx.antlib.present"
+             classname="org.apache.ant.cyclonedx.ComponentBomTask"
+             classpathref="classpath" 
ignoresystemclasses="${ignoresystemclasses}"/>
+
+  <target name="init-cyclonedx" if="cyclonedx.antlib.present">
+    <typedef uri="antlib:org.apache.ant.cyclonedx"
+      resource="org/apache/ant/cyclonedx/antlib.xml">
+      <classpath refid="classpath"/>
+    </typedef>
+
+    <cdx:organization
+        name="Apache Ant Development Team"
+        id="ant-team"
+        xmlns:cdx="antlib:org.apache.ant.cyclonedx">
+      <url url="https://ant.apache.org/"/>
+    </cdx:organization>
+    <cdx:license
+        licenseId="Apache-2.0"
+        id="apache-2"
+        xmlns:cdx="antlib:org.apache.ant.cyclonedx">
+      <url url="https://www.apache.org/licenses/LICENSE-2.0.txt"/>
+    </cdx:license>
+    <cdx:externalreferenceset
+        id="ant-common-refs"
+        xmlns:cdx="antlib:org.apache.ant.cyclonedx">
+      <externalReference
+          type="LICENSE"
+          url="https://www.apache.org/licenses/LICENSE-2.0.txt"/>
+      <externalReference
+          type="MAILING_LIST"
+          url="https://ant.apache.org/mail.html"/>
+      <externalReference
+          type="SECURITY_CONTACT"
+          url="https://www.apache.org/security/"/>
+      <externalReference
+          type="VCS"
+          url="https://github.com/apache/ant"/>
+      <externalReference
+          type="BUILD_SYSTEM"
+          url="https://ci-builds.apache.org/job/Ant/"/>
+      <externalReference
+          type="ISSUE_TRACKER"
+          url="https://bz.apache.org/bugzilla/buglist.cgi?product=Ant"/>
+      <externalReference
+          type="WEBSITE"
+          url="https://ant.apache.org/"/>
+      <externalReference
+          type="DISTRIBUTION"
+          url="https://ant.apache.org/bindownload.cgi"/>
+      <externalReference
+          type="SOURCE_DISTRIBUTION"
+          url="https://ant.apache.org/srcdownload.cgi"/>
+    </cdx:externalreferenceset>
+  </target>
+
+  <target name="component-boms" depends="init-cyclonedx,jars"
+          if="cyclonedx.antlib.present">
+
+    <property file="${lib.dir}/libraries.properties"/>
+
+    <cdx:componentbom
+        bomName="${name}-launcher-cyclonedx"
+        outputdirectory="${build.lib}"
+        format="all"
+        useComponentSupplier="true"
+        xmlns:cdx="antlib:org.apache.ant.cyclonedx">
+      <component
+          id="cdx-ant-launcher"
+          name="ant-launcher"
+          group="org.apache.ant"
+          version="${pom.version}"
+          description="Apache Ant Launcher"
+          publisher="The Apache Software Foundation"
+          manufacturerIsSupplier="true">
+        <file file="${build.lib}/${name}-launcher.jar"/>
+        <manufacturer refid="ant-team"/>
+        <license refid="apache-2"/>
+        <externalReferenceSet refid="ant-common-refs"/>
+      </component>
+      <license refid="apache-2"/>
+    </cdx:componentbom>
+    <cdx:componentbom
+        bomName="${name}-cyclonedx"
+        outputdirectory="${build.lib}"
+        format="all"
+        useComponentSupplier="true"
+        xmlns:cdx="antlib:org.apache.ant.cyclonedx">
+      <component
+          id="cdx-ant"
+          name="ant"
+          group="org.apache.ant"
+          version="${pom.version}"
+          description="Apache Ant Core"
+          publisher="The Apache Software Foundation"
+          manufacturerIsSupplier="true">
+        <file file="${build.lib}/${name}.jar"/>
+        <manufacturer refid="ant-team"/>
+        <license refid="apache-2"/>
+        <externalReferenceSet refid="ant-common-refs"/>
+        <dependency componentRef="cdx-ant-launcher"/>
+      </component>
+      <additionalComponent refid="cdx-ant-launcher"/>
+      <license refid="apache-2"/>
+    </cdx:componentbom>
+
+    <macrodef name="optional-sbom">
+      <attribute name="dep"/>
+      <attribute name="nameSuffix"/>
+      <element name="additionalContent" implicit="true" optional="true"/>
+      <sequential>
+        <cdx:componentbom
+            bomName="${optional.jars.prefix}-@{dep}-cyclonedx"
+            outputdirectory="${build.lib}"
+            format="all"
+            useComponentSupplier="true"
+            if:set="@{dep}.present" xmlns:if="ant:if"
+            xmlns:cdx="antlib:org.apache.ant.cyclonedx">
+          <component
+              id="cdx-ant-@{dep}"
+              name="ant-@{dep}"
+              group="org.apache.ant"
+              version="${pom.version}"
+              description="Apache Ant @{nameSuffix}"
+              publisher="The Apache Software Foundation"
+              manufacturerIsSupplier="true">
+            <file file="${build.lib}/${optional.jars.prefix}-@{dep}.jar"/>
+            <manufacturer refid="ant-team"/>
+            <license refid="apache-2"/>
+            <externalReferenceSet refid="ant-common-refs"/>
+            <dependency componentRef="cdx-ant"/>
+            <dependency componentRef="cdx-@{dep}"/>
+          </component>
+          <additionalComponent refid="cdx-ant"/>
+          <additionalComponent refid="cdx-ant-launcher"/>
+          <additionalComponent refid="cdx-@{dep}"/>
+          <license refid="apache-2"/>
+          <additionalContent/>
+        </cdx:componentbom>
+      </sequential>
+    </macrodef>
+
+    <cdx:component
+        id="cdx-apache-resolver"
+        name="xml-resolver"
+        group="xml-resolver"
+        version="${xml-resolver.version}"
+        description="xml-commons provides an Apache-hosted set of DOM, SAX, 
and JAXP interfaces for use in other xml-based projects. Our hope is that we 
can standardize on both a common version and packaging scheme for these 
critical XML standards interfaces to make the lives of both our developers and 
users easier."
+        publisher="The Apache Software Foundation"
+        xmlns:cdx="antlib:org.apache.ant.cyclonedx">
+      <license refid="apache-2"/>
+      <externalReference
+          type="WEBSITE"
+          url="http://xml.apache.org/commons/components/resolver/"/>
+    </cdx:component>
+    <optional-sbom dep="apache-resolver" nameSuffix="+ Apache Resolver"/>
+
+    <cdx:component
+        id="cdx-junit"
+        name="junit"
+        group="junit"
+        version="${junit.version}"
+        description="JUnit is a unit testing framework for Java, created by 
Erich Gamma and Kent Beck."
+        publisher="JUnit"
+        xmlns:cdx="antlib:org.apache.ant.cyclonedx">
+      <license licenseId="EPL-1.0">
+        <url url="http://www.eclipse.org/legal/epl-v10.html"/>
+      </license>
+      <externalReference
+          type="WEBSITE"
+          url="http://junit.org"/>
+      <dependency componentRef="cdx-hamcrest"/>
+    </cdx:component>
+    <cdx:component
+        id="cdx-hamcrest"
+        name="hamcrest"
+        group="org.hamcrest"
+        version="${hamcrest.version}"
+        description="Core API and libraries of hamcrest matcher framework."
+        xmlns:cdx="antlib:org.apache.ant.cyclonedx">
+      <license licenseId="BSD-3-Clause">
+        <url 
url="https://raw.githubusercontent.com/hamcrest/JavaHamcrest/master/LICENSE"/>
+      </license>
+      <externalReference
+          type="WEBSITE"
+          url="http://hamcrest.org/JavaHamcrest/"/>
+    </cdx:component>
+    <optional-sbom dep="junit" nameSuffix="+ JUnit">
+      <additionalComponent refid="cdx-hamcrest"/>
+    </optional-sbom>
+
+    <cdx:component
+        id="cdx-netrexx"
+        bomRef="https://www.netrexx.org/files/NetRexxC-${netrexx.version}.jar";
+        name="netrexx"
+        version="${netrexx.version}"
+        xmlns:cdx="antlib:org.apache.ant.cyclonedx">
+      <license licenseId="ICU">
+        <url url="https://github.com/RexxLA/NetRexx/blob/master/LICENSE"/>
+      </license>
+      <externalReference
+          type="WEBSITE"
+          url="https://www.netrexx.org/"/>
+      <externalReference
+          type="DISTRIBUTION"
+          url="https://www.netrexx.org/downloads.nsp"/>
+    </cdx:component>
+    <optional-sbom dep="netrexx" nameSuffix="+ NetRexx"/>
+
+  </target>
+
 </project>

Reply via email to