On 15/05/2026 09:52, Stefan Bodewig wrote:
Hi

while I was adding a new Antlib component of my own I also looked into
the failing Tomcat test builds in Gump.

Those builds have several <depend> tags with an id for the same project
nested into <ant>.

<ant>
    <depend property="bouncycastle-provider.jar" project="bouncy-castle" 
id="bc-provider" />
    <depend property="bouncycastle-pkix.jar" project="bouncy-castle" id="bc-pkix" 
/>
    <depend property="bouncycastle-util.jar" project="bouncy-castle" id="bc-util" 
/>
</ant>

Obviously the expectation is this will be equivalent to

<depend project="bouncy-castle" ids="bc-provider bc-pkix bc-util"/>

at the project level (plus three <property> elements).

 From reading the docs (I certainly didn't remember the implementation
anymore :-) I can understand why one would expect that.

The current code has never been meant to be used with multiple
dependencies to the same project, I'm afraid. The first nested <depend>
will add <depend project="bouncy-castle" ids="bc-provider"/> to the
project and the next two will not do anything as the project already
depends on "bouncy-castle" (line 161 in builder.py). The method name
project.hasFullDependencyOnNamedProject is misleading.

The workaround is to add an explicit <depend> at the project level,
which I did for the tomcat 11.x builds (partially to verify my
analysis).

I'm fine with the workaround.

Mark


A proper fix probably involves checking whether the project-level
dependency either doesn't contain any ids or includes the current
one. Implementing that may take a bit of time (I'm willing to give it a
try).

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to