Stefan Bodewig wrote:
On Thu, 23 Jan 2003, Nicola Ken Barozzi <[EMAIL PROTECTED]> wrote:

Stefan Bodewig wrote:

On Wed, 22 Jan 2003, Dominique Devienne <[EMAIL PROTECTED]> wrote:


Didn't understand a thing ;-)

Me neither 8-)


:-))

Good, it means that I was right in my supposition.


Not necessarily.  I'm focussing on bug fixing and getting 1.5.2 out of
the door before I really dive into the stuff originating from the
embed proposal.

Let's say, I don't understand property-interceptors and why they are
needed either 8-)

Simple, make it possible to add property resolution systems.

A property is now a simple value, but it's very convenient that it can be the result of an expression.

When I started using it in Centipede some time back, I created this document. Maybe it can be reused in Ant.
http://krysalis.org/cgi-bin/krywiki.pl?AntJXPath


A concrete example, that is also explained in the document, is about getting values from xml.

"
I have written a <xmldom> typedef that reads an xml file and puts it in the references. So, let's say I want to load the build.xml file as a DOM, and echo the project name:


  <!-- The DOM of file test.xml is referenced via the id-->
  <xmldom id="build.xml" file="build.xml"/>
  <echo message="${jxpath:/references/build.xml/root/project/@name}" />

Other examples with xmldom:

 top-level property values (separated by comma):
 ${jxpath:/references/build.xml/root/project/property/@value}

 top-level property values that have name "p":
 ${jxpath:/references/build.xml/root/project/[EMAIL PROTECTED]'p']/@value}

Final functionality: Let's say that I want to get the top-level property values that have the name defined in *another* Ant property, called pp:

 ${jxpath:/references/build.xml/root/project/[EMAIL PROTECTED]/@value}

JXpath expands all $ xpath variables using the Ant properties.
"

It's theorically possible to do the same with references, and give
the possibility of having an interceptor to give the reference.


IMHO, references and properties should be as similar as possible -
note that this broad statement is backed by a total lack of insight
into the PropertyHelper thing.

Well, they are not really.

   refid="blah"    <--->   ${blahvalue}

There is a level of indirection that makes it possible for me to do the following but not the opposite:

   refid="${blahstuff}"

With interception for properties, I can do:

   ${jxpath:/references/properties.xml/get/the/value/for/blah}

As you see, the interceptor can get me a property from a reference too:

 ${jxpath:/references/blah}

IMHO it could be confusing for users to have the possibility of doing:

 ${jxpath:/references/blah}

or

 refid="jxpath:/references/blah"

What the user would ant to intercept with the above is not the reference per se, but its name. And its name is a property.

 refid="jxpath:/references/blah"

can also be done by

 refid="${jxpath:/references/blah}"

I guess, no?

--
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