You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Ultra Funkular <fu...@nettaxi.com> on 2002/06/18 05:17:14 UTC

Using Ant api to call a task...

I am attempting to run the <antstructure> task using the Ant api directly.
However, there is a NullPointerException being thrown.


Stack Trace:

java.lang.NullPointerException
         at org.apache.tools.ant.Task.perform(Task.java:227)
         at org.apache.tools.ant.Target.execute(Target.java:164)
         at org.apache.tools.ant.Target.performTasks(Target.java:182)
         at org.apache.tools.ant.Project.executeTarget(Project.java:601)
         at 
funkular.util.AntTaskDefinitions.createDTDFile(AntTaskDefinitions.java:149)


Code:

                 Project project = new Project();
                 Target target = new Target();
                 AntStructure task = new AntStructure();
                 task.setOutput( file );
                 target.addTask( task );
                 final String TARGET_NAME = "CreateDTD";
                 target.setName(TARGET_NAME);
                 project.addTarget(TARGET_NAME, target);   // 
project.addTarget(target);
                 project.executeTarget(TARGET_NAME)


Is my code incorrect?  I gleaned the usage from the javadocs.

Comments and thoughts appreciated.


Platform:  ant 1.4 (with optional.jar), Debian Linux, IBM java SDK 1.3.1


Regards,


T Master

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: Using Ant api to call a task...

Posted by Ultra Funkular <fu...@nettaxi.com>.
My task reference is null after making the change from
	AntStructure task = new AntStructure();
	task.setProject(project);
   to
	AntStructure task =(AntStructure) 
project.createTask("antstructure");

Why is this?   The former implementation did work.
Perhaps "antstructure" is not recognised?  I also tried "AntStructre".
Note: The Project Javadoc does not specify the return type in this 
scenario.


T Master.




On Tue, 18 Jun 2002 00:11:49 Stefan Bodewig wrote:
> On Mon, 17 Jun 2002, Hal Hildebrand <Ha...@hellblazer.com>
> wrote:
> 
> >         ExecTask exec = new ExecTask();
> >         exec.setProject(project);
> 
> The preferred way would be
> 
>     ExecTask exec = (ExecTask) project.createTask("exec");
> 
> Stefan

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: Using Ant api to call a task...

Posted by "Hal Hildebrand (web)" <Ha...@hellblazer.com>.
Ah.  I see.

Thanks for the tip.  <g>

----- Original Message -----
From: "Stefan Bodewig" <bo...@apache.org>


> On Mon, 17 Jun 2002, Hal Hildebrand <Ha...@hellblazer.com>
> wrote:
>
> >         ExecTask exec = new ExecTask();
> >         exec.setProject(project);
>
> The preferred way would be
>
>     ExecTask exec = (ExecTask) project.createTask("exec");
>
> Stefan
>
> --
> To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>
>


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: Using Ant api to call a task...

Posted by Stefan Bodewig <bo...@apache.org>.
On Mon, 17 Jun 2002, Hal Hildebrand <Ha...@hellblazer.com>
wrote:

>         ExecTask exec = new ExecTask();
>         exec.setProject(project);

The preferred way would be 

    ExecTask exec = (ExecTask) project.createTask("exec");

Stefan

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: Using Ant api to call a task...

Posted by "Hal Hildebrand (web)" <Ha...@hellblazer.com>.
You're not setting the project of the task:

                  Project project = new Project();
                  Target target = new Target();
                  AntStructure task = new AntStructure();
                  task.setProject(project);

Here's a snippet that works.  There's likely real examples on the web,
but others will have to supply.

        os = new OutputStream());
        PrintStream ps = new PrintStream(os);
        Project project = new Project();
        BuildLogger logger = new DefaultLogger();
        logger.setMessageOutputLevel(Project.MSG_INFO);
        logger.setOutputPrintStream(ps);
        logger.setErrorPrintStream(ps);
        logger.setEmacsMode(true);
        project.addBuildListener(logger);
        ExecTask exec = new ExecTask();
        exec.setProject(project);
        exec.setExecutable("ant.bat");
        Commandline.Argument arg = exec.createArg();
        arg.setLine("-buildfile d:/work/tahiti/server/build.xml");
        exec.execute();
        ps.flush();


----- Original Message -----
From: "Ultra Funkular" <fu...@nettaxi.com>

>
> I am attempting to run the <antstructure> task using the Ant api
directly.
> However, there is a NullPointerException being thrown.
>
>
> Stack Trace:
>
> java.lang.NullPointerException
>          at org.apache.tools.ant.Task.perform(Task.java:227)
>          at org.apache.tools.ant.Target.execute(Target.java:164)
>          at org.apache.tools.ant.Target.performTasks(Target.java:182)
>          at
org.apache.tools.ant.Project.executeTarget(Project.java:601)
>          at
>
funkular.util.AntTaskDefinitions.createDTDFile(AntTaskDefinitions.java:1
49)
>
>
> Code:
>
>                  Project project = new Project();
>                  Target target = new Target();
>                  AntStructure task = new AntStructure();
>                  task.setOutput( file );
>                  target.addTask( task );
>                  final String TARGET_NAME = "CreateDTD";
>                  target.setName(TARGET_NAME);
>                  project.addTarget(TARGET_NAME, target);   //
> project.addTarget(target);
>                  project.executeTarget(TARGET_NAME)
>
>
> Is my code incorrect?  I gleaned the usage from the javadocs.
>
> Comments and thoughts appreciated.
>
>
> Platform:  ant 1.4 (with optional.jar), Debian Linux, IBM java SDK
1.3.1
>
>
> Regards,
>
>
> T Master
>
> --
> To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>
>


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>