The SAX2 helper remains here - I want to do few more improvement and to
keep it in sync with my next proposal ( for TaskFactory )
I'll make a separate proposal for the SAX2 ProjectHelper when it's ready -
it doesn't have to be part of the official ant1.5 ( since we'll need
more discussion/experiments to decide what's the best use of the namespaces )
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271782 13f79535-47bb-0310-9956-ffa450edef68
to the first one, and redo the fixes ).
I fixed the inner class problems, fixed the Attributes->AttributeList conversion.
I also turned the processing from 'implicit' recursive to an explicit
stack. The model is identical with the one used by Axis, and it's much
cleaner and easier to maintain/extend/etc.
Again, I can move back to the first one if anyone has a problem with this
change. I think it's a very good one, but may be too much.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271757 13f79535-47bb-0310-9956-ffa450edef68
The compiler is required to 'rewrite' the code, removing 'private' and
adding an extra parameter ( try to decompile ProjectHelper and look
at method signatures ). While standard javac seem to work fine, I had
problems with many other compilers ( usually gcj, but now jikes is
complaining as well ).
I manually did what the compiler would do - now it should work
with any compiler.
( the runtime exception was a "Verifier error, expecting object/array on stack" )
I'll do the same thing for the SAX2 helper.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271756 13f79535-47bb-0310-9956-ffa450edef68
Note that it already had dependencies on SAX2 interfaces, but the original
helper worked with SAX1 parsers too. This one will only work with SAX2.
IMHO SAX2 should be the default, and the old one should be kept
around for backward compat or special cases.
The parser is not using the namespace in any way - it'll use the
RoleFactory plugin to allow use of the namespace in task creation.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271736 13f79535-47bb-0310-9956-ffa450edef68
I used the current sources ( with the new comments), and reimplemented
all changes.
The current version doesn't have anything related with the other proposals,
and is functionally equivalent with the old ProjectHelper - except it's
cleaner ( all private and SAX code moved to the helper imple ).
I created a new package, o.a.t.ant.helper to keep the core cleaner -
other helpers may be commited.
The SAX2 based helper is easy to write, but depends on few improvements
on RoleFactory ( createTask with namespace support, etc ).
I'm working on a new implementation of the task factory, with support
for data types and other roles - but that's another story.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271735 13f79535-47bb-0310-9956-ffa450edef68
2. String readFully(Reader) added to FileUtils.java (main trunk revision 1.13)
3. Doc changes
4. Removed the attribute evaluateproperties from <loadfile> as it is no longer necessary.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271617 13f79535-47bb-0310-9956-ffa450edef68
1. Moved ChainReaderHelper.java to filters/util
2. Moved setInitialized, getInitialized to base class.
3. Introduced BaseParamFilterReader that implements Parameterizable and has setParameter
4. Null check introduced for LoadFile
5. Convenience method readLine() introduced into BaseFilterReader.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271605 13f79535-47bb-0310-9956-ffa450edef68
For example, HeadFilter can be added to filterset as this:
<filterreaderset>
<filterreader classname="org.apache.tools.ant.HeadFilter">
<param name="lines" value="3"/>
</filterreader>
</filterreaderset>
or this:
<filterreaderset>
<headfilter lines="3"/>
</filterreaderset>
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271580 13f79535-47bb-0310-9956-ffa450edef68
This is not organized as a 'project' - the files here needs to replace
the ones in the main tree. I'll probably import the rest of the core
and make it a standalone replacement, so it's easy to review.
The goals are to:
- make ant more 'embeddable'
- integrate it better in other tools
- support SAX2 and namespaces
- support pluggable behavior for the XML reader
- support pluggable task factories - the factory will have full control
over the class loader
- better support and integration with existing java beans.
All that while maintaining full compatibility with ant1.4 - all
the code here is just an additional set of hooks, with the previous
behavior preserved and remaining as default.
Eventually this can be refactored into a standalone component
that will implement a task engine for ant1.x.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271572 13f79535-47bb-0310-9956-ffa450edef68
Minor optimization of PropertyFileInputHandler.
Use magic property name ant.input.properties instead of
input.properties to conform with our unofficial magic property naming
convention.
Use valid choices in prompt (DefaultInputHandler only) if we have a
MultipleChoiceInputRequest.
Port old <input> testcase over to this proposal.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271557 13f79535-47bb-0310-9956-ffa450edef68