source: release-kits/lirk3/resources/gs3-release-maker/ant/docs/ant2/requested-features.html@ 14982

Last change on this file since 14982 was 14982, checked in by oranfry, 16 years ago

initial import of LiRK3

File size: 24.1 KB
Line 
1<html>
2<body>
3
4<h2>
5<center>Requested Features for Ant2</center>
6</h2>
7
8<h4>
9I. Things that don't affect the core but are requests for new tasks or
10enhancements to existing tasks.
11</h4>
12
13&quot;Accepted&quot; for a task doesn't mean that
14task will be a core task (or even be supplied by a voter), just that having
15it (as an optional task) would be acceptable.
16<p>
17
18<font face="Arial, Helvetica, sans-serif" size="-1">
19&nbsp;&nbsp;<b>Accepted</b>
20</font>
21
22<blockquote>
23<ul><li>
24Add a new datatype filterset to group token-filters.
25</li></ul>
26</blockquote>
27
28<blockquote>
29<ul><li>
30Make usage of particular filters/filtersets explicit in copy tasks.
31</li></ul>
32</blockquote>
33
34<blockquote>
35<ul><li>
36Make facade tasks for things like <code>&lt;javac&gt;</code>
37(JikesImpl, ModernImpl, etc.).
38(One candidate is <code>&lt;jar&gt;</code>, with implementations for
39a <code>&lt;fastjar&gt;</code>, for example.)
40</li></ul>
41</blockquote>
42
43<blockquote>
44<ul><li>
45Unify multiple similar tasks to use similar forms (eg., all the
46<code>&lt;javacc&gt;</code>-type
47tools).
48</li></ul>
49</blockquote>
50
51<blockquote>
52<ul><li>
53Obfuscating task.
54</li></ul>
55</blockquote>
56
57<blockquote>
58<ul><li>
59Better scripting/notification support so the hooks are available to
60send notifications at certain times.
61</li></ul>
62</blockquote>
63
64<blockquote>
65<ul><li>
66Add an <code>&lt;ant&gt;</code> task that will find build files according
67to a fileset and invoke a common target in them. (<code>&lt;anton&gt;</code>?)
68</li></ul>
69</blockquote>
70
71<blockquote>
72<ul><li>
73Add a JavaApply task that executes a given class with files from a
74fileset as arguments (similar to <code>&lt;apply&gt;</code>).
75</li></ul>
76</blockquote>
77
78<blockquote>
79<ul><li>
80Include some more sophisticated loggers with the Ant distribution &#150;
81especially for sending emails. Make the existing one more flexible
82(stylesheet used by XmlLogger). (Could be part of the same module tasks
83would be developed in?)
84</li></ul>
85</blockquote>
86
87<blockquote>
88<ul><li>
89Better docs (eg., more examples, tutorials, beginner documents, reference
90sheets for tasks, printable version, etc.).
91</li></ul>
92</blockquote>
93
94<blockquote>
95<ul><li>
96RPM task.
97</li></ul>
98</blockquote>
99
100<blockquote>
101<ul><li>
102Task for splitting files (head/tail/split-like functionality).
103</li></ul>
104</blockquote>
105
106<blockquote>
107<ul><li>
108Task to create XMI from Java.
109</li></ul>
110</blockquote>
111
112<blockquote>
113<ul><li>
114Socksified networking tasks, SSH tasks.
115(Peter Donald expressed some legal concerns that might need to be overcome,
116depending on the implementation.)
117</li></ul>
118</blockquote>
119
120<blockquote>
121<ul><li>
122A reachable task that works much like <code>&lt;available&gt;</code>,
123for network URLs.
124</li></ul>
125</blockquote>
126
127<blockquote>
128<ul><li>
129Task to extract classes from a jar-file that a given class depends on.
130(Based on <code>&lt;depend&gt;</code> or IBM's JAX, for example.)
131</li></ul>
132</blockquote>
133
134<blockquote>
135<ul><li>
136Unify <code>&lt;available&gt;</code> and <code>&lt;uptodate&gt;</code>
137into a more general
138<code>&lt;condition&gt;</code> task &#150; support
139<code>AND</code>/<code>OR</code> of
140several tests here.
141(Will need more discussion because of vote by Peter Donald.)
142</li></ul>
143</blockquote>
144
145<blockquote>
146<ul><li>
147JSP-compilation task. (Sounds like a candidate for a facade task.)
148</li></ul>
149</blockquote>
150
151<blockquote>
152<ul><li>
153URL-spider task that checks links for missing content or server errors.
154</li></ul>
155</blockquote>
156
157<font face="Arial, Helvetica, sans-serif" size="-1">
158&nbsp;&nbsp;<b>Rejected</b>
159</font>
160<blockquote>
161<ul><li>
162Make the default logger's output clear, informative, and terse. (Rejectors
163think it already is.)
164</blockquote>
165</li></ul>
166
167<blockquote>
168<ul><li>
169Add an attribute to <code>&lt;property&gt;</code> to read in an entire file
170as the value of a property.
171</li></ul>
172</blockquote>
173
174<blockquote>
175<ul><li>
176Make PATH-handling consistent. Every task that has a PATH attribute
177must also accept references to PATHs.
178</li></ul>
179</blockquote>
180
181<br>
182<h4>
183II. Goals that need to be abstract until we get into design
184decisions.
185</h4>
186
187During the discussion it became obvious that some things from this list
188are goals for Ant and some should be guidelines for developers.
189Therefore, there are two flavors, &quot;Accepted&quot; and
190&quot;Accepted As Guideline&quot;.
191<p>
192
193<font face="Arial, Helvetica, sans-serif" size="-1">
194&nbsp;&nbsp;<b>Accepted</b>
195</font>
196
197<blockquote>
198<ul><li>
199Provide a clear mission statement for Ant.
200</li></ul>
201</blockquote>
202
203<blockquote>
204<ul><li>
205Main goals<b>:</b> simplicity, understandability, extensibility.
206</li></ul>
207</blockquote>
208
209<blockquote>
210<ul><li>
211Remove magic properties if at all humanly possible.
212</li></ul>
213</blockquote>
214
215<blockquote>
216<ul><li>
217Remove as much dependency on native scripts as possible.
218</li></ul>
219</blockquote>
220
221<blockquote>
222<ul><li>
223Clean object model (ie., Project/Target/Task).
224</li></ul>
225</blockquote>
226
227<blockquote>
228<ul><li>
229Good event model to integrate well with IDE/GUI/etc.
230</li></ul>
231</blockquote>
232
233<blockquote>
234<ul><li>
235Use a consistent naming scheme for attributes across all tasks.
236</li></ul>
237</blockquote>
238
239<blockquote>
240<ul><li>
241Keep build-file syntax as compatible to Ant1 as possible
242(ie., don't break something just because we can).
243</li></ul>
244</blockquote>
245
246<blockquote>
247<ul><li>
248Keep the interface for tasks as similar to that of Ant1 as
249possible (ie., don't break something just because we can).
250</li></ul>
251</blockquote>
252
253<blockquote>
254<ul><li>
255Ant should be cancelable.
256</li></ul>
257</blockquote>
258
259<font face="Arial, Helvetica, sans-serif" size="-1">
260&nbsp;&nbsp;<b>Accepted As Guideline</b>
261</font>
262
263<blockquote>
264<ul><li>
265No commit of new features without documentation.
266</li></ul>
267</blockquote>
268
269<blockquote>
270<ul><li>
271No commit of new features without test-cases.
272</li></ul>
273</blockquote>
274
275<br>
276<h4>
277III. Things that are simple and easy to implement, where we expect the
278committers to agree.
279</h4>
280
281<font face="Arial, Helvetica, sans-serif" size="-1">
282&nbsp;&nbsp;<b>Accepted</b>
283</font>
284
285<blockquote>
286<ul><li>
287Namespace support so different concerns can occupy different namespaces
288from Ant (thus, SAX2/JAXP1.1).
289</li></ul>
290</blockquote>
291
292<blockquote>
293<ul><li>
294Java2
295</li></ul>
296</blockquote>
297
298<blockquote>
299<ul><li>
300Remove all deprecated methods, attributes, tasks.
301</li></ul>
302</blockquote>
303
304<blockquote>
305<ul><li>
306Allow all datatypes to be defined anywhere (ie., as children of
307project as well as of target).
308</li></ul>
309</blockquote>
310
311<blockquote>
312<ul><li>
313Make properties fully dynamic (ie., allow their value to be reassigned).
314</li></ul>
315</blockquote>
316
317<blockquote>
318<ul><li>
319Unify the namespace of all data types (ie., properties + filesets +
320patternsets + filtersets).
321</li></ul>
322</blockquote>
323
324<blockquote>
325<ul><li>
326Add a user-defined message if a target will be skipped as a
327result of the specified <code>if/unless</code>.
328</li></ul>
329</blockquote>
330
331<blockquote>
332<ul><li>
333Allow user datatypes to be defined via a <code>&lt;typedef&gt;</code>
334similar to <code>&lt;taskdef&gt;</code>.
335</li></ul>
336</blockquote>
337
338<br>
339<h4>
340IV. Things we probably agree on but need to discuss the details or
341decide between several possible options.
342</h4>
343
344&quot;Accepted&quot; means the goal/idea is fine, not that a decision on a
345particular implementation has been made.
346<p>
347
348<font face="Arial, Helvetica, sans-serif" size="-1">
349&nbsp;&nbsp;<b>Accepted</b>
350</font>
351
352<blockquote>
353<ul><li>
354The ability for GUI/IDE tools to integrate easily with object model
355without reinventing the wheel and writing their own parser (which
356Antidote was forced to do).
357(Two suggested solutions were allowing GUI developers to extend
358the object model (ie., GUITask extends Task) or to have Task as an
359interface (ie., GUITask implements Task). This way, the GUI tasks could
360be W3C DOM elements, have property vetoers/listeners, etc.)
361</li></ul>
362</blockquote>
363
364<blockquote>
365<ul><li>
366Support for numerous front-ends &#150; from command-line over GUI to servlets.
367(Corollary of the above?)
368</li></ul>
369</blockquote>
370
371<blockquote>
372<ul><li>
373Fully interpreted at run-time. (This almost requires some form of
374abstraction/proxy that stands in place of tasks till it is
375interpreted. This can be hash-tables/simple DOM-like model/whatever.)
376</li></ul>
377</blockquote>
378
379<blockquote>
380<ul><li>
381Provide utility classes to aid in building tasks (ie., like
382<code>&lt;uptodate&gt;</code> functionality abstracted).
383(Need to become more specific here.)
384</li></ul>
385</blockquote>
386
387<blockquote>
388<ul><li>
389Make ant-call a low-cost operation so it can do certain
390optional/template-like operations.
391(Corollary of "fully interpreted at run-time"?)
392</li></ul>
393</blockquote>
394
395<blockquote>
396<ul><li>
397Allow facilities to build projects from multiple sources (ie., CSS+XML,
398XSLT+XML, Velocity+text or database, from inside jars or normal
399<code>build.xml</code> files, etc.)
400(Allow the project tree to be built dynamically.)
401</li></ul>
402</blockquote>
403
404<blockquote>
405<ul><li>
406Move to a system that allows docs to be generated &#150; doc snippets
407should be included with the tasks they document.
408(Which DTD? Which tools for generation?)
409</li></ul>
410</blockquote>
411
412<blockquote>
413<ul><li>
414Allow tasks to be loaded from jars. (Use
415either an XML file in <code>TSK-INF/taskdefs.xml</code> or a
416manifest file.)
417</li></ul>
418</blockquote>
419
420<blockquote>
421<ul><li>
422Allow documentation to be stored in <code>.tsk</code> jars.
423(Corollary of the above two points?)
424</li></ul>
425</blockquote>
426
427<blockquote>
428<ul><li>
429Separate tasks into <code>.tsk</code> jars somehow.
430(Decide on categories.
431Probably via function &#150; ie., java tasks, file tasks, EJB tasks, etc.)
432</li></ul>
433</blockquote>
434
435<blockquote>
436<ul><li>
437Make having separate build-files easy (<i>&#224; la</i> AntFarm) and importing different
438projects a breeze.
439</li></ul>
440</blockquote>
441
442<blockquote>
443<ul><li>
444Provide support for user-defined task configurations &#150; (ie., give
445users the ability to specify a default value for attributes (eg., always
446use <code>debug="true"</code> in <code>&lt;javac&gt;</code> unless
447something else has been specified).
448(Three ideas so far<b>:</b> a CSS-like language,
449a <code>&lt;taskconfig&gt;</code> element, or
450properties following a specific naming scheme.)
451</li></ul>
452</blockquote>
453
454<blockquote>
455<ul><li>
456Support more control over the properties that are going to be passed
457to subprojects (modules).
458</li></ul>
459</blockquote>
460
461<blockquote>
462<ul><li>
463Task to prompt for user input.
464(Does affect core, as we need a means to request input from the front-end.)
465</li></ul>
466</blockquote>
467
468<blockquote>
469<ul><li>
470Add CVS login feature.
471(Requires handling of user input.)
472</li></ul>
473</blockquote>
474
475<blockquote>
476<ul><li>
477Easier installation process. GUI, maybe webstart from the homepage.
478This includes asking the user whether he wants to use optional tasks
479and downloads the required libs, automatic upgrades and so on.
480
481Self-extracting jar installer<b>:</b>
482<br>
483&nbsp;&nbsp;&nbsp;&nbsp;<code>java -jar jakarta-ant-1.3-bin.jar</code>
484<br>
485Prompts for destination directory, extracts archive, fixes all
486text files with <code>&lt;fixCRLF&gt;</code> task<b>;</b> on UNIX,
487makes scripts executable.
488Could also modify ant scripts with the location of <code>ANT_HOME</code>.
489</li></ul>
490</blockquote>
491
492<blockquote>
493<ul><li>
494Logo for Ant.
495</li></ul>
496</blockquote>
497
498<blockquote>
499<ul><li>
500Detach Ant from <code>System.err</code>/<code>.in</code>/<code>.out</code>.
501(Beware of problems with spawned processes.)
502</li></ul>
503</blockquote>
504
505<blockquote>
506<ul><li>
507Build-files should be declarative in nature.
508</li></ul>
509</blockquote>
510
511<font face="Arial, Helvetica, sans-serif" size="-1">
512&nbsp;&nbsp;<b>Rejected</b>
513</font>
514<blockquote>
515<ul><li>
516It should be possible to modify details of the actual build (e.g. classpath,
517compiler used, etc.) without the need to change the build specification.
518(Do <code>build.compiler</code> and <code>build.sysclasspath</code>
519cover everything, or do we need to add more stuff like this?)
520</li></ul>
521</blockquote>
522
523<blockquote>
524<ul><li>
525Better sub-project handling
526(whatever that means in detail).
527</li></ul>
528</blockquote>
529
530<br>
531<h4>
532V. Things we probably don't agree on.
533</h4>
534<i><b>Datatypes</b></i>
535
536<p>
537<font face="Arial, Helvetica, sans-serif" size="-1">
538&nbsp;&nbsp;<b>Accepted</b>
539</font>
540
541<blockquote>
542<ul><li>
543Allow <code>&lt;include&gt;/&lt;exclude&gt;</code>
544to work with multiple characteristerics of a file
545(ie., include into fileset if file is readable, modified after 29th of Feb,
546has a name that matches the pattern <code>&quot;**/*.java&quot;</code> and
547the property <code>foo.present</code> is set. Something similar to<b>:</b>
548<pre>
549 &lt;include&gt;
550 &lt;item-filter type="name" value="**/*.java"/&gt;
551 &lt;item-filter type="permission" value="r"/&gt;
552 &lt;!-- could optionally be directory or some other system specific features --&gt;
553 &lt;item-filter type="type" value="file"/&gt;
554 &lt;item-filter type="modify-time"
555 operation="greater-than"
556 value="29th Feb 2003"/&gt;
557 &lt;/include&gt;
558</pre>
559</li></ul>
560</blockquote>
561
562<blockquote>
563<ul><li>
564Provide support for non-hardwired (ie., loadable) low-level
565components (mappers/itemset-filters/converters). Allow them to be
566loaded in either globally or via a new classloader.
567</li></ul>
568</blockquote>
569
570<blockquote>
571<ul><li>
572Provide support for non-hardwired (ie., loadable) converters.
573<br>
574Q<b>:</b> What is a converter? Is this an implementation detail?
575<br>
576A<b>:</b> Not an implementation detail, but a way to extend the engine
577to convert more datatypes. Currently, we have a fixed set that is
578expanded on occasion (ie., includes primitive types + File). Instead
579of spreading converting code throughout the tasks, it can be centralized
580into one component and used by the engine. This becomes particularly
581relevent if you build Ant-based testing systems and use Ant in certain
582web-related areas.
583</li></ul>
584</blockquote>
585
586<blockquote>
587<ul><li>
588Set-arithmetic for fileset/patternset/*set.
589</li></ul>
590</blockquote>
591
592<blockquote>
593<ul><li>
594Inheritance of Ant properties/datatypes/context/etc. in project hierarchy.
595</li></ul>
596</blockquote>
597
598<font face="Arial, Helvetica, sans-serif" size="-1">
599&nbsp;&nbsp;<b>Rejected</b>
600</font>
601
602<blockquote>
603<ul><li>
604Allow mappers to be genericized so that particular features can be modified
605during mapping. Something similar to<b>:</b>
606<pre>
607 &lt;fileset ...&gt;
608 &lt;include name="*.sh"/&gt;
609 &lt;mapper type="unix-permissions"&gt;
610 &lt;param name="user" value="ant"/&gt;
611 &lt;param name="group" value="ant"/&gt;
612 &lt;param name="mod" value="755"/&gt;
613 &lt;/mapper&gt;
614 &lt;/fileset&gt;
615</pre>
616</li></ul>
617</blockquote>
618
619<blockquote>
620<ul><li>
621Provide datatypes through property tag and remove need for separate
622free-standing entities. That is<b>:</b><br>
623<pre>
624 &lt;property name="foo"&gt;
625 &lt;fileset dir="blah"&gt;
626 &lt;include name="*/**.java" /&gt;
627 &lt;/fileset&gt;
628 &lt;/property&gt;
629</pre>
630</li></ul>
631</blockquote>
632
633<blockquote>
634<ul><li>
635Make all datatypes interfaces to allow them to be customized in many
636ways.
637</li></ul>
638</blockquote>
639
640<blockquote>
641<ul><li>
642Inheritance between Ant datatypes (ie., fileset A inherits from
643fileset B (includes all entries in A).
644</li></ul>
645</blockquote>
646
647<blockquote>
648<ul><li>
649Homogenize notion of PATHs and filesets.
650</li></ul>
651</blockquote>
652
653<i><b>Ant's goals</b></i>
654
655<p>
656<font face="Arial, Helvetica, sans-serif" size="-1">
657&nbsp;&nbsp;<b>Accepted</b>
658</font>
659
660<blockquote>
661<ul><li>
662Provide support for CJAN.
663<br>
664Q: In what way?<br>
665A: Probably by supplying a set of tasks that download versioned
666binaries and their associated dependencies, caching the downloads
667in a known place and updating binaries when required.
668(&quot;When required&quot; being indicated by a change in property values).
669</li></ul>
670</blockquote>
671
672<font face="Arial, Helvetica, sans-serif" size="-1">
673&nbsp;&nbsp;<b>Rejected</b> (as a primary goal)
674</font>
675
676<blockquote>
677<ul><li>
678Make it possible to re-use the task engine for other things
679(ie., Installshield-type app, Peter's cron-server, and other task-based
680operations).
681</li></ul>
682</blockquote>
683
684<i><b>Class-loading</b></i>
685
686<p>
687<font face="Arial, Helvetica, sans-serif" size="-1">
688&nbsp;&nbsp;<b>Rejected</b>
689</font>
690
691<blockquote>
692<ul><li>
693Force resolution of classes on loading, to identify class-loader
694issues early (at least in global classloader).
695</li></ul>
696</blockquote>
697
698
699<blockquote>
700<ul><li>
701Ignore any classes contained in the damned ext dirs of a
702JVM &#150; possibly by launching with something like<b>:</b>
703<br>
704&nbsp;&nbsp;&nbsp;&nbsp;<code>jar -Djava.ext.dir=foo -jar ant.jar</code>
705<br>
706(Accepted if optional.)
707</li></ul>
708</blockquote>
709
710<p>
711<i><b>Workspace/sub-build issues</b></i>
712
713<p>
714<font face="Arial, Helvetica, sans-serif" size="-1">
715&nbsp;&nbsp;<b>Accepted</b>
716</font>
717
718<blockquote>
719<ul><li>
720Create the concept of workspace so that projects can be built in a
721DAG and thus enable projects like Catalina/Tomcat to have an easy
722build process. It also helps CJAN to a lesser degree and would
723partially solve the jars-in-CVS thing.
724</li></ul>
725</blockquote>
726
727<blockquote>
728<ul><li>
729Allow a target to depend on a target in another build-file.
730</li></ul>
731</blockquote>
732
733<p>
734<font face="Arial, Helvetica, sans-serif" size="-1">
735&nbsp;&nbsp;<b>Rejected</b>
736</font>
737
738<blockquote>
739<ul><li>
740Project inheritance. (What's this?)
741</li></ul>
742</blockquote>
743
744<blockquote>
745<ul><li>
746Target inheritance. That is, the ability to include targets from other
747project files, overriding them as necessary (so, cascading project
748files).
749</li></ul>
750</blockquote>
751
752<blockquote>
753<ul><li>
754Add an attribute to <code>&lt;ant&gt;</code> to feed back the environment
755(properties and taskdefs) from the child build to the parent.
756</li></ul>
757</blockquote>
758
759<blockquote>
760<ul><li>
761Allow a target to reference properties defined in another build-file.
762</li></ul>
763</blockquote>
764
765<p>
766<i><b>Documentation system</b></i>
767
768<p>
769<font face="Arial, Helvetica, sans-serif" size="-1">
770&nbsp;&nbsp;<b>Accepted</b> (with no decision on which system to use)
771</font>
772
773<blockquote>
774<ul><li>
775Generate docs by Anakia/XSLT.
776(Corollary of "move to a system that allows docs to be generated"?)
777</li></ul>
778</blockquote>
779
780<p>
781<i><b>Task API</b></i>
782
783<p>
784<font face="Arial, Helvetica, sans-serif" size="-1">
785&nbsp;&nbsp;<b>Accepted</b>
786</font>
787
788<blockquote>
789<ul><li>
790Tasks provide some way to identify their attributes from the outside.
791
792Possible solutions include a special method like <code>getProperties()</code>,
793an external describing file shipping with the task class or special
794Javadoc comments parsed by a custom doclet. Whatever the method, it
795should not impose any cost on run-time, as it is only used a small
796percentage of the time (design-time).
797</li></ul>
798</blockquote>
799
800<blockquote>
801<ul><li>
802Provide <code>&quot;failonerror&quot;</code>-like functionality to all tasks.
803(Provide this as an aspect?? Much like logging aspect or classloader aspect).
804</li></ul>
805</blockquote>
806
807<font face="Arial, Helvetica, sans-serif" size="-1">
808&nbsp;&nbsp;<b>Rejected</b>
809</font>
810
811<blockquote>
812<ul><li>
813Tasks should have access to its own XML representation.
814</blockquote>
815</li></ul>
816
817<blockquote>
818<ul><li>
819Task level if and unless attributes.
820</li></ul>
821</blockquote>
822
823<blockquote>
824<ul><li>
825Allow tasks to find out, whether another task has completed successfully.
826</li></ul>
827</blockquote>
828
829<p>
830<i><b>Logging</b></i>
831
832<blockquote>
833<ul><li>
834Allow build-file writers to modify logging (verbosity, for example)
835on a target-by-target or task-by-task basis.
836</li></ul>
837</blockquote>
838
839<blockquote>
840<ul><li>
841Make loggers configurable via build.xml.
842</li></ul>
843</blockquote>
844
845<p>
846<i><b>Multi-threading</b></i>
847
848<p>
849<font face="Arial, Helvetica, sans-serif" size="-1">
850&nbsp;&nbsp;<b>Accepted</b>
851</font>
852
853<blockquote>
854<ul><li>
855Multi-threaded execution of tasks within the same target.
856</li></ul>
857</blockquote>
858
859<font face="Arial, Helvetica, sans-serif" size="-1">
860&nbsp;&nbsp;<b>Rejected</b>
861</font>
862
863<blockquote>
864<ul><li>
865Multithreaded execution of targets.
866</li></ul>
867</blockquote>
868
869<p>
870<i><b>Procedural versus purely declarative</b></i>
871
872<p>
873<font face="Arial, Helvetica, sans-serif" size="-1">
874&nbsp;&nbsp;<b>Rejected</b>
875</font>
876
877<blockquote>
878<ul><li>
879Simple flow-control (<code>if-then-else</code>, <code>for</code>)
880</li></ul>
881</blockquote>
882
883<blockquote>
884<ul><li>
885Targets should be like methods, including a return value.
886</li></ul>
887</blockquote>
888
889<blockquote>
890<ul><li>
891Build-files should be purely declarative.
892</li></ul>
893</blockquote>
894
895<p>
896<i><b>Properties</b></i>
897
898<p>
899<font face="Arial, Helvetica, sans-serif" size="-1">
900&nbsp;&nbsp;<b>Accepted</b>
901</font>
902
903<blockquote>
904<ul><li>
905Ability to manage scoping of properties in general
906(ie., target/project/workspace).
907</li></ul>
908</blockquote>
909
910<p>
911<i><b>Templates</b></i>
912
913<p>
914<font face="Arial, Helvetica, sans-serif" size="-1">
915&nbsp;&nbsp;<b>Rejected</b>
916</font>
917
918<blockquote>
919<ul><li>
920It should be possible to provide general/(template?) build
921specifications, and to declare, for a concrete item, that it should be
922built according to such a general specification.
923</ul></li>
924</blockquote>
925
926<p>
927<i><b>XML issues</b></i>
928
929<p>
930<font face="Arial, Helvetica, sans-serif" size="-1">
931&nbsp;&nbsp;<b>Accepted</b>
932</font>
933
934<blockquote>
935<ul><li>
936A built-in mechanism to include build-file fragments &#150; something
937that doesn't use <code>SYSTEM</code> entities at all and therefore is
938XSchema-friendly, allows for property expansions, etc.
939</li></ul>
940</blockquote>
941
942<blockquote>
943<ul><li>
944Allow Ant to farm out attributes and elements that are <i>not</i>
945in the Ant namespace to other components (ie., hand <code>doc:</code> elements
946to the Documentation component or <code>log:</code> attributes to the Log
947policy component, etc.
948</li></ul>
949</blockquote>
950
951<font face="Arial, Helvetica, sans-serif" size="-1">
952&nbsp;&nbsp;<b>Rejected</b>
953</font>
954
955<blockquote>
956<ul><li>
957Let Ant ignore &#150; but warn &#150; if unknown XML elements or attributes
958occur in a build-file.
959</li></ul>
960</blockquote>
961
962<p>
963<i><b>Core extensions</b></i>
964
965<p>
966<font face="Arial, Helvetica, sans-serif" size="-1">
967&nbsp;&nbsp;<b>Accepted</b>
968</font>
969
970<blockquote>
971<ul><li>
972Allow sequence to be specified in <code>&quot;depends&quot;</code> attribute,
973or enhance <code>&lt;antcall&gt;</code> to work with current list of executed
974targets.
975</li></ul>
976</blockquote>
977
978<blockquote>
979<ul><li>
980Provide a way to define the order in which targets that a given target
981depends upon get executed. (Same as above?)
982</li></ul>
983</blockquote>
984
985<blockquote>
986<ul><li>
987Support nesting tasks into other elements &#150; not just as children of
988target &#150; as proposed by Thomas Christen in
989<a href http://marc.theaimsgroup.com/?l=ant-dev&m=98130655812010&w=2>
990his mail message</a>.
991</li></ul>
992</blockquote>
993
994<blockquote>
995<ul><li>
996Define task contexts that define various common aspects (logging,
997failure handling, etc.), and assign them to tasks.
998</li></ul>
999</blockquote>
1000
1001<font face="Arial, Helvetica, sans-serif" size="-1">
1002&nbsp;&nbsp;<b>Rejected</b>
1003</font>
1004
1005<blockquote>
1006<ul><li>
1007Allow named tasks to be defined by <code>&lt;script&gt;</code> elements.
1008</li></ul>
1009</blockquote>
1010
1011<blockquote>
1012<ul><li>
1013Specify an OnFail task or target that runs in case of a build
1014failure.
1015</li></ul>
1016</blockquote>
1017
1018<blockquote>
1019<ul><li>
1020Make <code>if/unless</code> attributes check for the value of a property, not
1021only its existance.
1022</li></ul>
1023</blockquote>
1024
1025<blockquote>
1026<ul><li>
1027Check for more than one condition in <code>if/unless</code> attributes.
1028</li></ul>
1029</blockquote>
1030
1031<p>
1032<i><b>Organization</b></i>
1033
1034<p>
1035<font face="Arial, Helvetica, sans-serif" size="-1">
1036&nbsp;&nbsp;<b>Rejected</b>
1037</font>
1038
1039<blockquote>
1040<ul><li>
1041Separate CVSes and code hierarchies for<b>:</b>
1042</li></ul>
1043<ul type="circle">
1044<li>task engine [org.apache.task.*]</li>
1045<li>project engine (ie., model of targets/projects/workspaces) +
1046support/utility classes [org.apache.ant.*]</li>
1047<li>core tasks (ie., tasks supported by Ant contributors) [org.apache.???]</li>
1048</ul>
1049</blockquote>
1050
1051<p>
1052<i><b>Miscellaneous</b></i>
1053
1054<p>
1055<font face="Arial, Helvetica, sans-serif" size="-1">
1056&nbsp;&nbsp;<b>Accepted</b>
1057</font>
1058
1059<blockquote>
1060<ul><li>
1061Internationalization.
1062</li></ul>
1063</blockquote>
1064
1065<p>
1066<h4>
1067VI. Things that were submitted late
1068</h4>
1069
1070<p>
1071<font face="Arial, Helvetica, sans-serif" size="-1">
1072&nbsp;&nbsp;<b>Rejected</b>
1073</font>
1074
1075<blockquote>
1076<ul><li>
1077Integration of the <code>&lt;depend&gt;</code> and <code>&lt;javac&gt;</code>
1078tasks.
1079</li></ul>
1080</blockquote>
1081
1082<blockquote>
1083<ul><li>
1084Recursive property resolution (ie., resolving <code>${dist.${name}.dir}</code>)
1085</li></ul>
1086</blockquote>
1087
1088</body>
1089</html>
1090
Note: See TracBrowser for help on using the repository browser.