diff --git a/proposal/myrmidon/docs/todo.html b/proposal/myrmidon/docs/todo.html index 712c5832b..d833bdc06 100644 --- a/proposal/myrmidon/docs/todo.html +++ b/proposal/myrmidon/docs/todo.html @@ -10,6 +10,8 @@ + +
+ + XML Catalog to load XML Fragments + + |
+ ++ |
+ + Refactor Java Infrastructure into a Service + + |
+ ++ |
+ + Structural Dependency Utils + + | ||||||||||||||||||
+ ++ |
+ + Coloring API + + | |||||||||
+ ++ |
+ + Create Task/Element/Attribute Naming guidelines + + |
+ ++ |
Rethink Notification/Event scheme
diff --git a/proposal/myrmidon/src/xdocs/todo.xml b/proposal/myrmidon/src/xdocs/todo.xml
index 6a61111ae..6cb857d6d 100644
--- a/proposal/myrmidon/src/xdocs/todo.xml
+++ b/proposal/myrmidon/src/xdocs/todo.xml
@@ -2,6 +2,7 @@
+ When including fragments of XML we are currently forced to use relative paths. + However this is sometimes undesirable when a single fragment needs to be used + across several projects in several different locations. Instead we could use + a Catalog to name the fragment and then each developer would only need to install + the fragment once and it would be accessible from all the projects. + +Much like Exec should be decoupled from Ant runtime, so should classes + to implement java task for the same benefits. ++ In the present ant, it is required that each task manage dependency separately. + This makes it a lot of work to implement even simple dependency checking. To this + day many of the core tasks do not implement it correctly. I am specifically + talking about "structural" dependency information. The main reason is that it is + painful to implement. + +
+ Some tasks do no dependency checking and will recompile/transform/etc everytime.
+ Others may perform a simple dependency checking (ie if source file is newer than
+ destination file then recompile). Ideally a dependency system would actually
+ calculate the dependencies correctly. So we need to have some mechanism to determine
+ that
+ Generating the dependency information is a costly operation and thus we do not want to
+ be doing it everytime you run ant. We want to generate it on the initial build and then
+ persist somewhere. Everytime a file is out of date, it's dependency information would
+ be regenerated and stored in the dependency cache. Ideally this cache would also store the
+ above mentioned coloring information. So the entry for + A possible API would be + +
+ When you execute a task such as "javac" there is two types of dependency information
+ that is important to analyze before we determine if we need to recompile a file. Say
+ we are compiling + So we need to create an infrastructure that allows tasks to manage "coloring". So a task + should be able to add coloring information for each resource processed. When the task + comes to process the resource again it will detect if the coloring has changed and if it + has will force a recompile. + ++ An API for such a bean has yet to be established but an example API would be. + +Currently Ant has a mixture of tasks from various stages it's evolution, with different + authors and each utilizing different naming patterns. Some tasks use names such as + "src" and "dest" while others use "file" and "tofile". It would be preferrable if + consistent naming patterns were used. It is recomended that we come up with a "best + practices" document to document our recomended naming patterns. +Before we can come up with such a document we need to identify common patterns through + out the tasks. Several tasks have the notion of transforming input from a "source" + to a "destination". So we should have consistent naming schemes for these attributes and + elements. Analysis of existing tasks will likely bring out other similar patterns. Once + we have identified and documented these similarities then we can establish conventions. + +We need to rethink the whole notificaiton scheme. Should tasks be able to |