On Wednesday 17 September 2003 12:17, Stefan Bodewig wrote:
> On Wed, 17 Sep 2003, peter reilly <[EMAIL PROTECTED]> wrote:
> > The javadoc on the import task says that <import> should only
> > be used at the top-level.
>
> OK.
>
> > This statement is not in the manual.
>
> Let's fix it ;-)
Yes...
>
> > The code does not check the precondition.
>
> Maybe it should?
Yes  - see below.
>
> > so it could be said that the top-level tasks (including import) do
> > not get evaluated at parser time.
>
> OK, if I nest <import> into a target, something like
>
> <target name="define-paths" depends="detect-platform">
>   <import file="${platform.specific.paths}"/>
> </target>
>
> and this would import a file that had only <path> definitions - the
> definitions are platform specific - will it work as expected?
>
> With "expected" I mean it would include the <path> defitions for my
> platform (based on a property set by a task in target
> detect-platform).  And certainly make those <path>s usable for
> subsequent targets.

using <import> within a target does not work as the code
that was placed in to handle top-level tasks/types does
not work in this case (it assumes the pre-condition).
(This is revision 1.21 of ProjectHelper2).

We get a crash and burn ;-)

build.xml
<project name="test">
  <target name="use2">
    <import file="echo.xml"/>
  </target>
</project>

echo.xml
<project>
  <echo>Hello world</echo>
</project>

ant use2

BUILD FAILED
java.lang.IndexOutOfBoundsException: Index: 8, Size: 7
        at java.util.ArrayList.addAll(ArrayList.java:460)
        at org.apache.tools.ant.Target.endImportedTasks(Target.java:201)
        at 
org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:159)
        at org.apache.tools.ant.taskdefs.ImportTask.execute(ImportTask.java:188)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:309)
        at org.apache.tools.ant.Task.perform(Task.java:401)
        at org.apache.tools.ant.Target.execute(Target.java:363)
        at org.apache.tools.ant.Target.performTasks(Target.java:390)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1237)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1094)
        at org.apache.tools.ant.Main.runBuild(Main.java:667)
        at org.apache.tools.ant.Main.startAnt(Main.java:220)
        at org.apache.tools.ant.Main.start(Main.java:184)
        at org.apache.tools.ant.Main.main(Main.java:267)




Peter.

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