Sam Ruby wrote:
Stefano Mazzocchi wrote:
There are two places where you can put <depend>
1) inside <project> 2) inside <ant>
jakarta-slide.xml uses both.
First of all, what is the rationale behind this? if a project depends on another project, why do we need to specify things further for ant?
Think of <depend> elements inside of <ant> as macros. It expands to a <property> element inside of <ant> and a <depend> element inside of <project>.
[stefano bangs head against the wall]
Gump has always needed <depend> elements.
Sure.
Some projects have required the same information (specifically jar paths) to be provided to ant as properties.
As noted in the documentation[1], "that has become a common enough practice that it makes sense to introduce this element".
The golden rules of metadata are:
1) should be declerative (procedurality should be inferred) 2) semantics should be absolute and not positional
the XML model makes it hard to do 1) and extremely hard to do 2). Gump descriptors are perfect examples of a markup that started as 1), didn't even notice 2) and ended up breaking 1) as a result.
Also, I don't understand the difference between:
<depend property="" project="" id=""/>
and
<property name="" project="" id=""/>
why are they different? and, if so, why are their methods so similar?
They are intentionally very similar. A <depend> inside of an <ant> definition has exactly the same meaning as a <property> inside of an <ant> definition PLUS a <depend> element inside the project definition (minus the property attribute).
And this was introduced to help out, I guess.
Sigh, I guess we have a lot more work to do than I expected :-/
Third golden rule of metadata
3) should minimize semantic redundancy
Great, we have found how gump descriptors break all three rules.
I guess it's time to go back to the drawing board.
-- Stefano.
smime.p7s
Description: S/MIME Cryptographic Signature
