I am trying to update the antlib proposal (proposal/sandbox/antlib).

I believe everybody agrees on the objective of developing antlib(s) (in order 
to avoid ending up with 10.000 classes in optional probably)

Every time I open my development environment to have a look at the proposal, I 
see that I need to copy 3 or 4 methods from the Project.java of the main branch 
so that everything works. So we need to progress swiftly concerning this antlib 
issue, otherwise the same checks will need to be done over and over again 
(moving target syndrome).

There are the following features in the antlib proposal:
 
1) antlib & antjar
------------------------

deployment descriptor called antlib.xml which would go in the META-INF 
subdirectory of the antlib

looks like that
<antlib version="1.5" >
  <task name="mkdir" class="org.apache.tools.ant.taskdefs.Mkdir"/>
  <task name="javac" class="org.apache.tools.ant.taskdefs.Javac"/>

  <data-type name="description" class="org.apache.tools.ant.types.Description"/>
  <data-type name="dirset" class="org.apache.tools.ant.types.DirSet"/>
....

Note that this mechanism would also be used for the core of ant and for 
optional.jar.
So defaults.properties would die. I believe that xml is superior to properties 
files, and the fact of using the same technique for ant core and for the 
antlibs [ to find out which tasks and which datatypes are defined ] is good.

2) type definitions 
--------------------------

allowing to define new implementations of mappers, selectors, paths, 
conditions, etc. You can define these implementations in your antlib and a way 
to link this with the introspectors (I am not sure how complete this is).
This would be really nice, because it will eliminate all the need for 
mentioning classnames all around, antlibs will be used just like core.
Also useful for tasks like <ejbjar> which has vendor specific components that 
should be part of the antlib of the vendor.

3) A scoping framework for the symbol tables needed to manage the antlib 
definitions
---------------------------------------------------------------------------------------------------------------------------
Management of a hash symbol table containing names, classes, and roles. Roles 
are currently task or datatype.
It is possible to define new roles.

4) A framework for managing classloaders where you can specify which 
classloader to use when loading an antlib.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
 

I would like, based on this email, to read what you find OK and what should be 
changed in the antlib proposal. Once I have the comments from everybody on the 
list, we might put them together in a document - including conflicting views if 
any - and vote.

Antoine 

Reply via email to