And further, Ant itself was annotated with XDoclet @tags a few years ago for auto-generation of documentation and with the plan to use it for metadata generation for tools to use. As far as I know, no tool vendor as picked up on this metadata sadly. I'm not sure how the IntrospectionHelper improvements and the XDoclet tags (which probably have not been kept up-to-date) synergize - though I suspect there is information returned from introspection that would still make some Ant tasks fail that do programmatic validation checks of data. The @tags can provide that additional information, such that only one of a set of attributes may be used.

        Erik

On Jan 6, 2005, at 6:04 PM, Dominique Devienne wrote:

From: Rich Wagner [mailto:[EMAIL PROTECTED]

Have you considered using reflection, in addition to meta-model files?
In
other words, imagine searching Ant's classpath for task classes, and
then
using reflection to (for instance) discover what attributes each task
class accepts.

Actually, instead of duplicating the reflection code in Ant, use the Ant
API itself. We have recently improved IntrospectionHelper to expose all
attributes and elements and extension points (add(X) methods) supported
by any bean (task/type/etc...), including whether it accepts nested
text.


Now with AntLibs, you can also auto-discover tasks/types by scanning the
classpath for antlib.xml resources, which is the most often used way to
declare an AntLib such that is works with the antlib:package.name magic
namespace URIs (it then expect a package/name/antlib.xml resource).


From the antlib.xml resources, you can know which classes to load and
feed to IntrospectionHelper to find out everything about them in terms
of attributes/elements/extensions-points/text supported.

Just my 2 cents. --DD

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