J.Pietschmann wrote:
Nicola Ken Barozzi wrote:

[top-level tasks]

It has been accepted, and personally I find it very useful; I am able now do do all sorts of initialization stuff, also in imported files, and for example I can xslt-transform a project before importing it.
It's quite powerful, and not confusing at all.


As for XSLT-then-import: what's the advantage over
 <project ...>
    <target name="default"
       <style src="..." dst="build2.xml" .../>
       <ant src="build2.xml">
    </target>
 </project>
(sorry, can't be bothered looking up the correct syntax).

It's a big difference, because in your example you setup a new instance of ant and it *really* slows down things, and also you create it a nested context, not in the same context in which other tasks are run.


For example, with xslt I am able to construct a classpath using complex logic quite easily, and import it in the buildfile right away as a toplevel reference, where everyone can use it.

Basically it's preprocessing, like there is in C code, only that it's done at runtime, not in two steps.

[QNames]

This is the current use:

  ${jxpath:/references/}
  ${velocity:$mystuff}

They tell Ant that the property must be resolved not directly but using a defined interceptor; sort of the protocol in inet urls.


If the semantic of the jxpath prefix is hardwired or defined by
something like
  <bind prefix="jxpath" handler="whatever.class.necessary.Handler"/>
it's ok.
If it aquires it's semantic by
  <project xmlns:jxpath="http://xmlns.abuse.org/ant";>
then it's abuse.

I'm safe then =;-)

    <taskdef classname="org.apache.tools.ant.taskdefs.optional.JXPath"
             name="jxpath" />
    <jxpath/>

Note that it would be legal to have the namespace declaration above
if it doesn't define how ${jxpath:/references/} is interpreted, for
example in case someone wants to have a <jxpath:mytask> somewhere
(though this is hardly recommended). I hope you see the pattern.

Yes, I do now. Fine then, it's ok.

[scoping rules] [property namespaces]

Any more concrete hint on how these should be?

Ahem, perhaps using ${project-name.property-name} or something. Every method other than using xmlns:scope-name="..." would be fine.

Ok, rom the above I think I now get what you mean.

What's the expectation: is X from B executed or not?
Is it executed before or after X from A?

:-/

Oha! Caught?

Yes.
I think you are right, we must avoid including multiple times the same target from different files in the same file.


We're defining it as we discuss.

Ah, ok. A dedicated effort would still be a nice idea, I think.

You've found yourself an occupation then I guess ;-P

--
Nicola Ken Barozzi                   [EMAIL PROTECTED]
            - verba volant, scripta manent -
   (discussions get forgotten, just code remains)
---------------------------------------------------------------------


-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>



Reply via email to