ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From co...@apache.org
Subject cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb BorlandDeploymentTool.java BorlandGenerateClient.java
Date Thu, 19 Apr 2001 14:02:17 GMT
conor       01/04/19 07:02:17

  Modified:    docs/manual/OptionalTasks BorlandGenerateClient.html
               src/main/org/apache/tools/ant/taskdefs/optional/ejb
                        BorlandDeploymentTool.java
                        BorlandGenerateClient.java
  Log:
  Provide a way to specify addtional class path for blgenclient
  task.
  
  The borland Generate client uses a java call instead of the launch of an
  external process.
  The previous mode is still available if you set mode="fork"
  
  Submitted by:	Benoît MOUSSAUD <benoit.moussaud@criltelecom.com>
  
  Revision  Changes    Path
  1.2       +14 -5     jakarta-ant/docs/manual/OptionalTasks/BorlandGenerateClient.html
  
  Index: BorlandGenerateClient.html
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/docs/manual/OptionalTasks/BorlandGenerateClient.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- BorlandGenerateClient.html	2001/04/07 03:51:30	1.1
  +++ BorlandGenerateClient.html	2001/04/19 14:02:15	1.2
  @@ -37,15 +37,24 @@
         =&gt; hellobean-ejbclient.jar</td>
       <td align="center" valign="middle" width="62">no</td>
     </tr>
  +  <tr>
  +    <td valign="top" width="63">mode</td>
  +    <td valign="top" width="915">choose the command launching mode. Two values: 
  +      java or fork. default = java. Possibility to specify a classpath.</td>
  +    <td align="center" valign="middle" width="62">no</td>
  +  </tr>
   </table>
   
   <h3>Examples</h3>
   <p>The following build.xml snippit is an example of how to use Borland element 
  -  into the ejbjar task
  -<pre>  ....
  -&lt;generateclient ejbjar=&quot;lib/secutest-ejb.jar&quot; clientjar=&quot;lib/client.jar&quot;
debug=&quot;true&quot;/&gt;
  -....
  -   </pre>
  +   into the ejbjar task using the java mode.
  +<pre>
  +&lt;blgenclient ejbjar=&quot;lib/secutest-ejb.jar&quot; clientjar=&quot;lib/client.jar&quot;
debug=&quot;true&quot; mode=&quot;java&quot;&gt;
  +    &lt;classpath&gt;
  +        &lt;pathelement locacation=&quot;mymodule.jar&quot;/&gt;
  +    &lt;/classpath&gt;
  +&lt;/blgenclient&gt;
  +</pre>
   <pre>&nbsp;</pre>
   
   <p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All
rights
  
  
  
  1.3       +4 -0      jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandDeploymentTool.java
  
  Index: BorlandDeploymentTool.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandDeploymentTool.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BorlandDeploymentTool.java	2001/04/07 03:51:32	1.2
  +++ BorlandDeploymentTool.java	2001/04/19 14:02:16	1.3
  @@ -314,6 +314,10 @@
               gentask = (BorlandGenerateClient) getTask().getProject().createTask("internal_bas_generateclient");
               gentask.setEjbjar(sourceJar);
               gentask.setDebug(java2iiopdebug);            
  +            Path classpath = getCombinedClasspath();             
  +            if (classpath != null) {
  +                gentask.setClasspath(classpath);
  +            }
               gentask.setTaskName("generate client");
               gentask.execute();
           }
  
  
  
  1.2       +116 -36   jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandGenerateClient.java
  
  Index: BorlandGenerateClient.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandGenerateClient.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- BorlandGenerateClient.java	2001/04/07 03:51:32	1.1
  +++ BorlandGenerateClient.java	2001/04/19 14:02:16	1.2
  @@ -1,7 +1,7 @@
   /*
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2000 The Apache Software Foundation.  All rights
  + * Copyright (c) 2001 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -56,12 +56,8 @@
   package org.apache.tools.ant.taskdefs.optional.ejb;
   
   import java.io.*;
  -import java.io.FileReader;
  -import java.io.LineNumberReader;
  -import java.io.StringReader;
   import java.net.*;
   import java.util.*;
  -import java.util.Iterator;
   import java.util.jar.*;
   import javax.xml.parsers.*;
   
  @@ -75,12 +71,16 @@
   /**
    * BorlandGenerateClient is dedicated to the Borland Application Server 4.5
    * This task generates the client jar using as input the ejb jar file.
  + * Two mode are available: java mode (default) and fork mode. With the fork mode,
  + * it is impossible to add classpath to the commmand line.
    * 
  - * @author     <a href="mailto:benoit.moussaud@criltelecom.com">Benoit Moussaud</a>
  + * @author  <a href="mailto:benoit.moussaud@criltelecom.com">Benoit Moussaud</a>
    *
    */
   public class BorlandGenerateClient extends Task
   {
  +    static final String JAVA_MODE = "java";
  +    static final String FORK_MODE = "fork";
   
       /** debug the generateclient task */
       boolean debug = false;
  @@ -91,20 +91,48 @@
       /** hold the client jar file name */
       File clientjarfile = null;
   
  -    public void setDebug(boolean debug)
  -    {
  +    /** hold the classpath */
  +    Path classpath;
  +
  +    /** hold the mode (java|fork) */
  +    String mode = JAVA_MODE;
  +
  +    public void setMode(String s) {
  +        mode = s;
  +    }
  +    public void setDebug(boolean debug) {
           this.debug = debug;
       }
   
  -    public void setEjbjar(File ejbfile)
  -    {
  +    public void setEjbjar(File ejbfile) {
           ejbjarfile = ejbfile;
       }
  -    public void setClientjar(File clientjar)
  -    {
  +    
  +    public void setClientjar(File clientjar) {
           clientjarfile = clientjar;
       }
   
  +    public void setClasspath(Path classpath) {
  +        if (this.classpath == null) {
  +            this.classpath = classpath;
  +        }
  +        else {
  +            this.classpath.append(classpath);
  +        }
  +    }
  +    
  +    public Path createClasspath() {
  +        if (this.classpath == null) {
  +            this.classpath = new Path(project);
  +        }
  +        return this.classpath.createPath();
  +    }
  +    
  +    public void setClasspathRef(Reference r) {
  +        createClasspath().setRefid(r);
  +    }
  +    
  +
       /**
        * Do the work.
        *
  @@ -112,38 +140,92 @@
        *
        * @exception BuildException if someting goes wrong with the build
        */
  -    public void execute() throws BuildException 
  -    {
  -        try
  -        {
  -            if ( ejbjarfile == null ||
  -                 ejbjarfile.isDirectory()) 
  -            {
  -                throw new BuildException("invalid ejb jar file.");
  -            } // end of if ()
  +    public void execute() throws BuildException {
  +        if ( ejbjarfile == null ||
  +             ejbjarfile.isDirectory()) {
  +            throw new BuildException("invalid ejb jar file.");
  +        } // end of if ()
  +
  +        if ( clientjarfile == null ||
  +             clientjarfile.isDirectory()) {
  +            log("invalid or missing client jar file.",Project.MSG_VERBOSE);
  +            String ejbjarname = ejbjarfile.getAbsolutePath();
  +            //clientname = ejbjarfile+client.jar
  +            String clientname = ejbjarname.substring(0,ejbjarname.lastIndexOf("."));
  +            clientname = clientname + "client.jar";
  +            clientjarfile = new File(clientname);
  +
  +        } // end of if ()
  +
  +        if ( mode == null ) {
  +            log("mode is null default mode  is java");
  +            setMode(JAVA_MODE);
  +        } // end of if ()
  +
  +        log("client jar file is " + clientjarfile);
  +
  +        if ( mode.equalsIgnoreCase(FORK_MODE)) {
  +            executeFork();
  +        } // end of if ()
  +        else {            
  +            executeJava();
  +        } // end of else                       
  +    }
  +    
  +    /** launch the generate client using java api */
  +    protected void executeJava() throws BuildException {
  +        try {
  +            log("mode : java");
   
  -            if ( clientjarfile == null ||
  -                 clientjarfile.isDirectory()) 
  -            {
  -                log("invalid or missing client jar file.",Project.MSG_VERBOSE);
  -                String ejbjarname = ejbjarfile.getAbsolutePath();
  -                //clientname = ejbjarfile+client.jar
  -                String clientname = ejbjarname.substring(0,ejbjarname.lastIndexOf("."));
  -                clientname = clientname + "client.jar";
  -                clientjarfile = new File(clientname);
  +            org.apache.tools.ant.taskdefs.Java execTask = null;                
  +            execTask = (Java) getProject().createTask("java");
  +                       
  +            execTask.setDir(new File("."));
  +            execTask.setClassname("com.inprise.server.commandline.EJBUtilities");
  +            //classpath
  +            //add at the end of the classpath
  +            //the system classpath in order to find the tools.jar file
  +            execTask.setClasspath(classpath.concatSystemClasspath());
   
  +            execTask.setFork(true);
  +            execTask.createArg().setValue("generateclient");
  +            if ( debug ) {
  +                execTask.createArg().setValue("-trace");                
               } // end of if ()
   
  -            log("client jar file is " + clientjarfile);
  +            //
  +            execTask.createArg().setValue("-short");
  +            execTask.createArg().setValue("-jarfile");
  +            // ejb jar file
  +            execTask.createArg().setValue(ejbjarfile.getAbsolutePath());
  +            //client jar file
  +            execTask.createArg().setValue("-single");
  +            execTask.createArg().setValue("-clientjarfile");
  +            execTask.createArg().setValue(clientjarfile.getAbsolutePath());
  +
  +            log("Calling EJBUtilities",Project.MSG_VERBOSE);                       
  +            execTask.execute();        
  +
  +        }
  +        catch (Exception e) {
  +            // Have to catch this because of the semantics of calling main()
  +            String msg = "Exception while calling generateclient Details: " + e.toString();
  +            throw new BuildException(msg, e);
  +        }
  +    }
   
  +    /** launch the generate client using system api */
  +    protected  void executeFork() throws BuildException {
  +        try {
  +            log("mode : fork");
  +
               org.apache.tools.ant.taskdefs.ExecTask execTask = null;                
               execTask = (ExecTask) getProject().createTask("exec");
                          
               execTask.setDir(new File("."));
               execTask.setExecutable("iastool");
               execTask.createArg().setValue("generateclient");
  -            if ( debug ) 
  -            {
  +            if ( debug ){
                   execTask.createArg().setValue("-trace");                
               } // end of if ()
   
  @@ -160,13 +242,11 @@
               log("Calling java2iiop",Project.MSG_VERBOSE);                       
               execTask.execute();        
           }
  -        catch (Exception e) 
  -        {
  +        catch (Exception e) {
               // Have to catch this because of the semantics of calling main()
               String msg = "Exception while calling generateclient Details: " + e.toString();
               throw new BuildException(msg, e);
           }
   
       }
  -    
   }
  
  
  

Mime
View raw message