Antoine, Thanks for the correction and explanation, I'll give it a go.
Cheers, Hoos -----Original Message----- From: Antoine Levy-Lambert [mailto:[EMAIL PROTECTED] Sent: 10 August 2006 23:24 To: Ant Users List Subject: Re: RE: Calling ant tasks from jython Hello Hussein, the first version needs a line like : mkdir.setProject(project); before mkdir.execute(); the reason is that execute() contains calls to log and requires the project object to be set. Regards, Antoine -------- Original-Nachricht -------- Datum: Thu, 10 Aug 2006 21:33:51 +0100 Von: "Hussein Badakhchani" <[EMAIL PROTECTED]> An: "Ant Users List" <user@ant.apache.org> Betreff: RE: Calling ant tasks from jython > 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:[EMAIL PROTECTED] > 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 <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED] > > 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:[EMAIL PROTECTED] > > 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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > 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: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > 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: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]