ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aloizio Pereira da Silva <aloi...@dcc.ufmg.br>
Subject Re: New Task and Classpath
Date Fri, 29 Aug 2003 13:43:23 GMT
I created a new class IniciarGeracao() that get the parameters from
TaskGeraRelatorio().  In the execute() method of TaskGeraRelatorio() I put 
   setClassname("org.apache.tools.ant.taskdefs.IniciarGeracao")   
This class is executed, but it could not get the parameters from the 
TaskGeraRelatorio() class.  I created some public methods into
TaskGeraRelatorio() that return each attribute of the class. But they
does not retun anything. What can be happing? I show the
IniciarGeracao() code below:

public class IniciarGeracao {

  public IniciarGeracao ()
  {

  }

  public static void iniciaGeracao()
  {
   try
   {
    TaskGeraRelatorio tarefa = new TaskGeraRelatorio();
    GerarRelatorio gerador = new GerarRelatorio();
    gerador.atribuirDiretorioSaida(tarefa.getDiretorioSaida());
    System.out.println(tarefa.getDiretorioSaida());
    gerador.atribuirArqPrestacao(tarefa.getArqPrestacao());
    gerador.atribuirArqNomeRelatorio(tarefa.getArqNomeRelatorio());
    //obter parmetros do banco
    StringTokenizer stBanco = new
StringTokenizer(tarefa.getBanco(),",",false);
    if(stBanco.countTokens() == 2)
    {
       gerador.atribuirBanco("",stBanco.nextToken().toLowerCase().trim(),
        stBanco.nextToken().toLowerCase().trim());
    }
    else if(stBanco.countTokens() == 3)
    {
      gerador.atribuirBanco(stBanco.nextToken().toLowerCase().trim(),
         stBanco.nextToken().toLowerCase().trim(),
        stBanco.nextToken().toLowerCase().trim());
    }

gerador.atribuirCaminhoBancosInterBase(tarefa.getCaminhoBancosInterBase());
    gerador.atribuirVersaoJar(tarefa.getVersaoJar());
    gerador.atribuirUsarID(tarefa.getUsarID());
    gerador.gerarRelatorio();
   }catch (Exception ex)
    {
      ex.printStackTrace();
    }
  }

  public static void main(String[] args)
  {
     iniciaGeracao();
  }

}

            *****************************************************
            *         Federal University of Minas Gerais        *
            *          Department of Computer Science          *
            *         Master Degree in Computer Science         *
            *                                                   *
            *                 Aloizio Silva                     *
            *         http://www.dcc.ufmg.br/~aloizio          *
            *                                                   *
            *      Mobile Computer and Network Optimization     *
            *****************************************************                        
 

On Thu, 28 Aug 2003, [iso-8859-1] Antoine LÚvy-Lambert wrote:

> you should move the code of iniciarGeracao to another class, and call the
> equivalent of iniciarGeracao in the other class
> public static void main(String [] argv).
> in TaskGeraRelatorio, you should say
> setClassNames("the name of your new class")
> this is the way the java class works, it is made to invoke main methods.
> Cheers,
> Antoine
> ----- Original Message -----
> From: "Aloizio Pereira da Silva" <aloizio@dcc.ufmg.br>
> To: "Ant Users List" <user@ant.apache.org>
> Sent: Thursday, August 28, 2003 11:11 PM
> Subject: Re: New Task and Classpath
> 
> 
> > Of course, I made what  Antoine suggested. I need to instantiate another
> > class from new task code. But when I call iniciarGeracao() I get
> > error. Because the jars files are not found. I display this below:
> >
> >
> >
> >   public void execute() throws BuildException
> >   {
> >    setTaskName(getTaskName());
> >    System.out.println(getTaskName());
> >    setClasspath(createClasspath());
> >    setClassname("org.apache.tools.ant.taskdefs.TaskGeraRelatorio");
> >    createArg().setValue(diretorioSaida);
> >    createArg().setValue(arqprestacao);
> >    createArg().setValue(arqNomeRelatorio);
> >    createArg().setValue(banco);
> >    createArg().setValue(caminhoBancosInterBase);
> >    createArg().setValue(versaoJar);
> >    createArg().setValue(usarID);
> >    setFork(true);
> >    super.execute();
> >    try
> >    {
> >       iniciarGeracao();
> >    }
> >    catch (Exception ex)
> >     {
> >       ex.printStackTrace();
> >     }
> >   }
> >
> >   public void iniciarGeracao()
> >   {
> >    try
> >    {
> >     GerarRelatorio gerador = new GerarRelatorio();
> >     gerador.atribuirDiretorioSaida(diretorioSaida);
> >     gerador.atribuirArqPrestacao(arqprestacao);
> >     gerador.atribuirArqNomeRelatorio(arqNomeRelatorio);
> >     //obter parmetros do banco
> >     StringTokenizer stBanco = new StringTokenizer(banco,",",false);
> >     if(stBanco.countTokens() == 2)
> >     {
> >        gerador.atribuirBanco("",stBanco.nextToken().toLowerCase().trim(),
> >         stBanco.nextToken().toLowerCase().trim());
> >     }
> >     else if(stBanco.countTokens() == 3)
> >     {
> >       gerador.atribuirBanco(stBanco.nextToken().toLowerCase().trim(),
> >          stBanco.nextToken().toLowerCase().trim(),
> >         stBanco.nextToken().toLowerCase().trim());
> >     }
> >     gerador.atribuirCaminhoBancosInterBase(caminhoBancosInterBase);
> >     gerador.atribuirVersaoJar(versaoJar);
> >     gerador.atribuirUsarID(usarID);
> >     gerador.gerarRelatorio();
> >    }catch (Exception ex)
> >     {
> >       ex.printStackTrace();
> >     }
> >   }
> >
> >             *****************************************************
> >             *         Federal University of Minas Gerais        *
> >             *          Department of Computer Science          *
> >             *         Master Degree in Computer Science         *
> >             *                                                   *
> >             *                 Aloizio Silva                     *
> >             *         http://www.dcc.ufmg.br/~aloizio          *
> >             *                                                   *
> >             *      Mobile Computer and Network Optimization     *
> >             *****************************************************
> >
> > On Thu, 28 Aug 2003, Matt Benson wrote:
> >
> > > You have not set the classpath.  Your code is
> > > instantiating a new <java> task, then setting its
> > > classpath to the value returned by createClasspath(),
> > > which is a new (and empty) Path.  Your code should not
> > > be nearly as big as it is to be extending the Java
> > > task.  Carefully read what Antoine has suggested,
> > > which is what I had suggested.  Your code should
> > > really consist of not much more than a constructor and
> > > settors for any attributes you may need specific to
> > > the Java class you want to call.  Unless there is
> > > something really special happening it sounds like you
> > > could do what you want without coding Java at all,
> > > just do it all in the xml file with a properly
> > > configured <java> task.
> > >
> > > -Matt
> > >
> > > --- Aloizio Pereira da Silva <aloizio@dcc.ufmg.br>
> > > wrote:
> > > > I used org.apache.tools.ant.taskdefs because I
> > > > intend to put this task
> > > > like standard ant task. But this is not a problem.
> > > >
> > > > The problem is I call a java class into the new ant
> > > > task. If you look the
> > > > execute() method it call iniciarGeracao() that
> > > > instantiate
> > > > GeradorRelatorio() class. In this case, during the
> > > > execution the jars
> > > > files is not found. In spite of I have set the
> > > > classpath.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > *****************************************************
> > > >             *         Federal University of Minas
> > > > Gerais        *
> > > >             *          Department of Computer
> > > > Science          *
> > > >             *         Master Degree in Computer
> > > > Science         *
> > > >             *
> > > >            *
> > > >             *                 Aloizio Silva
> > > >            *
> > > >             *
> > > > http://www.dcc.ufmg.br/~aloizio          *
> > > >             *
> > > >            *
> > > >             *      Mobile Computer and Network
> > > > Optimization     *
> > > >
> > > >
> > > *****************************************************
> > > >
> > > >
> > > > On Thu, 28 Aug 2003, Antoine Levy-Lambert wrote:
> > > >
> > > > > 1)the package name of your class does not need to
> > > > be and should not be
> > > > > org.apache.tools.ant.taskdefs,
> > > > > rather should belong to your company's package
> > > > structure
> > > > >
> > > > > 2) I notice that your class extends the Java task
> > > > of ant, this is fine.
> > > > > In this case you do not need to override methods
> > > > which stay the same such as
> > > > > CreateClasspath.
> > > > > You can rewrite your execute method more simply :
> > > > >
> > > > > setTaskName("TaskGeraRelatorio");
> > > > >  createArg().setValue(diretorioSaida);
> > > > > createArg().setValue(arqprestacao);
> > > > > createArg().setValue(arqNomeRelatorio);
> > > > > createArg().setValue(banco);
> > > > > createArg().setValue(caminhoBancosInterBase);
> > > > > createArg().setValue(versaoJar);
> > > > > createArg().setValue(usarID);
> > > > > setFork(true);
> > > > > super.execute();
> > > > >
> > > > >
> > > > > Antoine
> > > > > ----- Original Message -----
> > > > > From: "Aloizio Pereira da Silva"
> > > > <aloizio@dcc.ufmg.br>
> > > > > To: "Ant Users List" <user@ant.apache.org>
> > > > > Sent: Thursday, August 28, 2003 8:33 PM
> > > > > Subject: Re: New Task and Classpath
> > > > >
> > > > >
> > > > > >
> > > > > > This did not work. I am sending attached files
> > > > If anyone could help me.
> > > > > > build.xml e new ant task java class.
> > > > > >
> > > > > > thanks.
> > > > > >
> > > > > >
> > > > > >
> > > >
> > > *****************************************************
> > > > > >             *         Federal University of
> > > > Minas Gerais        *
> > > > > >             *          Department of Computer
> > > > Science          *
> > > > > >             *         Master Degree in Computer
> > > > Science         *
> > > > > >             *
> > > >                *
> > > > > >             *                 Aloizio Silva
> > > >                *
> > > > > >             *
> > > > http://www.dcc.ufmg.br/~aloizio          *
> > > > > >             *
> > > >                *
> > > > > >             *      Mobile Computer and Network
> > > > Optimization     *
> > > > > >
> > > >
> > > *****************************************************
> > > > > >
> > > > > > On Thu, 28 Aug 2003, Antoine Levy-Lambert wrote:
> > > > > >
> > > > > > > You should set in the classpath that you
> > > > define in build.xml your new
> > > > > task
> > > > > > > and all its dependencies.
> > > > > > > Also none of these should be in the CLASSPATH
> > > > environment variable
> > > > > before
> > > > > > > you start ant.
> > > > > > > If this does not help, can you post your
> > > > build.xml
> > > > > > > Antoine
> > > > > > > ----- Original Message -----
> > > > > > > From: "Aloizio Pereira da Silva"
> > > > <aloizio@dcc.ufmg.br>
> > > > > > > To: "Ant Users List" <user@ant.apache.org>
> > > > > > > Sent: Thursday, August 28, 2003 6:59 PM
> > > > > > > Subject: Re: New Task and Classpath
> > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > > I made what you suggested. But, my ant task
> > > > java class has a call for
> > > > > > > > another java class that use some libraries.
> > > > And I set this libraries
> > > > > > > > in Build.xml. Then I get the following
> > > > error:
> > > > > > > >
> > > > > > > > Why the setting classpath does not remain to
> > > > the another java class?
> > > > > > > > BUILD FAILED
> > > > > > > > java.lang.NoClassDefFoundError:
> > > > > > >
> > > > synergia/persistencia/principal/ExcecaoPersisten
> > > > > > > > cia  at
> > > > > > > >
> > > >
> > > org.apache.tools.ant.taskdefs.TaskGeraRelatorio.iniciarGeracao(Unknow
> > > > > > > > n Source) at
> > > > > > > >
> > > >
> > > org.apache.tools.ant.taskdefs.TaskGeraRelatorio.execute(Unknown
> > > > > > > > Source)
> > > > > > > >
> > > > > > > >
> > > >
> > > *****************************************************
> > > > > > > >             *         Federal University of
> > > > Minas Gerais        *
> > > > > > > >             *          Department of
> > > > Computer Science          *
> > > > > > > >             *         Master Degree in
> > > > Computer Science         *
> > > > > > > >             *
> > > >                    *
> > > > > > > >             *                 Aloizio Silva
> > > >                    *
> > > > > > > >             *
> > > > http://www.dcc.ufmg.br/~aloizio          *
> > > > > > > >             *
> > > >                    *
> > > > > > > >             *      Mobile Computer and
> > > > Network Optimization     *
> > > > > > > >
> > > >
> > > *****************************************************
> > > > > > > >
> > > > > > > > On 28 Aug 2003, Stefan Bodewig wrote:
> > > > > > > >
> > > > > > > > > On Wed, 27 Aug 2003, Aloizio Pereira da
> > > > Silva <aloizio@dcc.ufmg.br>
> > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > messages: [gerar_relatorio]
> > > > java.lang.NoClassDefFoundError:
> > > > > > > > > > org/apache/tools/ant/Task
> > > > > > > > >
> > > > > > > > > You need to add ant.jar to the <classpath>
> > > > explicitly (or do that
> > > > > > > > > inside of execute() as the <java> task
> > > > that you use internally tries
> > > > > > > > > to keep the environment clean of Ant's own
> > > > classes.
> > > > > > > > >
> > > > > > > > > Stefan
> > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > > ---------------------------------------------------------------------
> > > > > > > > > To unsubscribe, e-mail:
> > > > user-unsubscribe@ant.apache.org
> > > > > > > > > For additional commands, e-mail:
> > > > user-help@ant.apache.org
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > >
> > > ---------------------------------------------------------------------
> > > > > > > > To unsubscribe, e-mail:
> > > > user-unsubscribe@ant.apache.org
> > > >
> > > === message truncated ===
> > >
> > >
> > > __________________________________
> > > Do you Yahoo!?
> > > Yahoo! SiteBuilder - Free, easy-to-use web site design software
> > > http://sitebuilder.yahoo.com
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> > > For additional commands, e-mail: user-help@ant.apache.org
> > >
> > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> > For additional commands, e-mail: user-help@ant.apache.org
> >
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
> 
> 


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


Mime
View raw message