ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hussein Badakhchani" <Hussein.Badakhch...@voca.com>
Subject RE: Calling ant tasks from jython
Date Thu, 10 Aug 2006 20:33:51 GMT
Peter,

Many thanks for your help, here are my findings:

In your first example you suggested:

        <script language="jython">
import org.apache.tools.ant.taskdefs.Mkdir as Mkdir
import java.io.File as File
testDir=File('./build/weblogic92/test')
mkdir = Mkdir()
mkdir.setDir(testDir)   <-- Upto here it works
mkdir.execute()         
        </script>

A call to execute leads to a NullPointerException

Your second suggestion works!

       <script language="jython">
import org.apache.tools.ant.taskdefs.Mkdir as Mkdir
import java.io.File as File
mkdir = project.createTask("mkdir")
mkdir.dir = File("createme")
mkdir.execute()
        </script>

This code can also be run using my preferred form of calling an external
.py script:

 <script language="jython" src="tools/jython/antCallTest2.py"/>

antCallTest2.py

import org.apache.tools.ant.taskdefs.Mkdir as Mkdir
import java.io.File as File
mkdir = project.createTask("mkdir")
mkdir.dir = File("createme")
mkdir.execute()


Thanks again, you have streamlined my weblogic build process greatly :)

Cheers,
Hoos

-----Original Message-----
From: Peter Reilly [mailto:peter.kitt.reilly@gmail.com] 
Sent: 10 August 2006 16:51
To: Ant Users List
Subject: Re: Calling ant tasks from jython

I normally use project.createTask() even though it does not support
presets.

example:
<project name="j">
    <macrodef name="x">
        <attribute name="y"/>
        <sequential>
            <echo>y is @{y}</echo>
        </sequential>
    </macrodef>

    <script language="jython">
import java.io.File as File

d = project.createTask("delete")
d.dir = File("createme")
d.quiet = 1
d.execute()

mkdir = project.createTask("mkdir")
mkdir.dir = File("createme")
mkdir.execute()
    </script>

    <script language="jython">
x = project.createTask("x")
x.setDynamicAttribute("y", "abc")
x.execute()
    </script>
</project>

outputs:
Buildfile: jython.xml
   [delete] Deleting directory C:\work\a\createme
    [mkdir] Created dir: C:\work\a\createme
     [echo] y is abc

BUILD SUCCESSFUL
Total time: 1 second

Peter

On 8/10/06, Hussein Badakhchani <Hussein.Badakhchani@voca.com> wrote:
>
> I can call the depreciated Copyfile task without a problem. I guess
ant
> tasks need some boot strapping if they are to be used out side of ant.
> Does anyone have an example of using an ant task in some custom Java
> code, this might shed some light on what I need to do.
>
> -----Original Message-----
> From: Hussein Badakhchani [mailto:Hussein.Badakhchani@voca.com]
> Sent: 10 August 2006 14:38
> To: Ant Users List
> Subject: RE: Calling ant tasks from jython
>
> Thanks, your right that was a typo in my message. I still have the
> error.
>
> -----Original Message-----
> From: Peter Reilly [mailto:peter.kitt.reilly@gmail.com]
> Sent: 10 August 2006 14:32
> To: Ant Users List
> Subject: Re: Calling ant tasks from jython
>
> just a quick look:
>
>     Mkdir.setDir(testDir)
>
> should be mkdir.setDir(testDir)
>
> Peter
>
>
> On 8/10/06, Hussein Badakhchani <Hussein.Badakhchani@voca.com> wrote:
> >
> > Hello,
> >
> >
> >
> > I am calling a jython script from my build.xml file using the script
> > task e.g:
> >
> >
> >
> > <script language="jython" src="tools/jython/antCallTest.py"/>
> >
> >
> >
> > I want to use ant tasks from antCallTest.py. While I don't seem to
> have
> > any problems retrieving my projects properties it seems that any
call
> I
> > make to an ant task method requires an extra argument.
> >
> > For example:
> >
> >
> >
> > Script called from my build.xml file
> >
> >
> >
> > import org.apache.tools.ant.taskdefs.Mkdir as Mkdir
> >
> > import java.io.File as File
> >
> >
> >
> > # These calls all work file
> >
> > print "Ant Call Test"
> >
> > print project.getProperty('build.dir')
> >
> > print project.getName()
> >
> >
> >
> > testDir=File('./test')
> >
> > mkdir = Mkdir()
> >
> >
> >
> > # At this point I get the error
> >
> > Mkdir.setDir(testDir)
> >
> >
> >
> >
> >
> > Traceback (innermost last):
> >
> > File "<string>", line 10, in ?
> >
> > TypeError: setDir(): expected 2 args; got 1
> >
> >
> >
> >
> >
> > The setDir method only accepts 1 argument as per the api.
> >
> > I have tried passing in an instance of self but I get the following
> > error:
> >
> >
> >
> > Mkdir.setDir(self, testDir)
> >
> >
> >
> > Traceback (innermost last):
> >
> >   File "<string>", line 10, in ?
> >
> > TypeError: setDir(): self arg can't be coerced to
> >
> >
> >
> > Jython does not tell me what object self cannot be coerced to!
> >
> >
> >
> > What am I missing here?
> >
> >
> >
> > Hussein Badakhchani
> >
> > Middleware Analyst
> >
> > Infrastructure Support
> >
> >
> >
> > Blog: http://dev2dev.bea.com/blog/hoos/
> >
> >
> >
> >
> >
> >
> >
> > *****************************************************
> >
> >     You can find us at www.voca.com
> >
> > *****************************************************
> > This communication is confidential and intended for
> > the exclusive use of the addressee only. You should
> > not disclose its contents to any other person.
> > If you are not the intended recipient please notify
> > the sender named above immediately.
> >
> > Registered in England, No 1023742,
> > Registered Office: Voca Limited
> > Drake House, Three Rivers Court,
> > Homestead Road, Rickmansworth,
> > Hertfordshire, WD3 1FX
> >
> >
> > This message has been checked for all email viruses by MessageLabs.
> >
>
>
> This message has been checked for all email viruses by MessageLabs.
>
>
> This message has been checked for all email viruses by MessageLabs.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
>
> This message has been checked for all email viruses by MessageLabs.
>
>
>
> This message has been checked for all email viruses by MessageLabs.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
>


This message has been checked for all email viruses by MessageLabs.


This message has been checked for all email viruses by MessageLabs.

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message