You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by co...@apache.org on 2001/08/02 16:38:46 UTC

cvs commit: jakarta-ant/src/main/org/apache/tools/ant/types CommandlineJava.java

conor       01/08/02 07:38:46

  Modified:    src/main/org/apache/tools/ant/taskdefs Java.java
               src/main/org/apache/tools/ant/types CommandlineJava.java
  Log:
  Add jvmVersion attribute so that maxmeory is formatted correctly for the
  target JVM
  
  PR:	2913
  
  Revision  Changes    Path
  1.28      +5 -5      jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Java.java
  
  Index: Java.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Java.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- Java.java	2001/07/22 15:44:11	1.27
  +++ Java.java	2001/08/02 14:38:46	1.28
  @@ -239,13 +239,13 @@
        * -mx or -Xmx depending on VM version
        */
       public void setMaxmemory(String max){
  -        if (Project.getJavaVersion().startsWith("1.1")) {
  -            createJvmarg().setValue("-mx"+max);
  -        } else {
  -            createJvmarg().setValue("-Xmx"+max);
  -        }
  +        cmdl.setMaxmemory(max);
       }
   
  +    public void setJVMVersion(String value) {
  +        cmdl.setVmversion(value);
  +    }
  +    
       protected void handleOutput(String line) {
           if (outStream != null) {
               outStream.println(line);
  
  
  
  1.14      +29 -7     jakarta-ant/src/main/org/apache/tools/ant/types/CommandlineJava.java
  
  Index: CommandlineJava.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/types/CommandlineJava.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- CommandlineJava.java	2001/07/18 10:07:02	1.13
  +++ CommandlineJava.java	2001/08/02 14:38:46	1.14
  @@ -69,6 +69,7 @@
       private SysProperties sysProperties = new SysProperties();
       private Path classpath = null;
       private String vmVersion;
  +    private String maxMemory = null;
   
       /**
        * Specialized Environment class for System properties
  @@ -129,7 +130,7 @@
   
       public CommandlineJava() {
           setVm(getJavaExecutableName());
  -        setVmversion(org.apache.tools.ant.Project.getJavaVersion());
  +        setVmversion(Project.getJavaVersion());
       }
   
       public Commandline.Argument createArgument() {
  @@ -173,17 +174,18 @@
   
       public String[] getCommandline() {
           Path fullClasspath = classpath != null ? classpath.concatSystemClasspath("ignore") : null;
  +        Commandline actualVMCommand = getActualVMCommand();
           int size = 
  -            vmCommand.size() + javaCommand.size() + sysProperties.size();
  +            actualVMCommand.size() + javaCommand.size() + sysProperties.size();
           if (fullClasspath != null && fullClasspath.size() > 0) {
               size += 2;
           }
           
           String[] result = new String[size];
  -        System.arraycopy(vmCommand.getCommandline(), 0, 
  -                         result, 0, vmCommand.size());
  +        System.arraycopy(actualVMCommand.getCommandline(), 0, 
  +                         result, 0, actualVMCommand.size());
   
  -        int pos = vmCommand.size();
  +        int pos = actualVMCommand.size();
           if (sysProperties.size() > 0) {
               System.arraycopy(sysProperties.getVariables(), 0,
                                result, pos, sysProperties.size());
  @@ -198,13 +200,32 @@
           return result;
       }
   
  +    /**
  +     * -mx or -Xmx depending on VM version
  +     */
  +    public void setMaxmemory(String max){
  +        this.maxMemory = max;
  +    }
   
  +
       public String toString() {
           return Commandline.toString(getCommandline());
       }
   
  +    private Commandline getActualVMCommand() {
  +        Commandline actualVMCommand = (Commandline)vmCommand.clone();
  +        if (maxMemory != null) {
  +            if (vmVersion.startsWith("1.1")) {
  +                actualVMCommand.createArgument().setValue("-mx" + maxMemory);
  +            } else {
  +                actualVMCommand.createArgument().setValue("-Xmx" + maxMemory);
  +            }
  +        }
  +        return actualVMCommand;
  +    }        
  +    
       public int size() {
  -        int size = vmCommand.size() + javaCommand.size();
  +        int size = getActualVMCommand().size() + javaCommand.size();
           if (classpath != null && classpath.size() > 0) {
               size += 2;
           }
  @@ -216,7 +237,7 @@
       }
   
       public Commandline getVmCommand() {
  -        return vmCommand;
  +        return getActualVMCommand();
       }
   
       public Path getClasspath() {
  @@ -240,6 +261,7 @@
           c.vmCommand = (Commandline) vmCommand.clone();
           c.javaCommand = (Commandline) javaCommand.clone();
           c.sysProperties = (SysProperties) sysProperties.clone();
  +        c.maxMemory = maxMemory;
           if (classpath != null) {
               c.classpath = (Path) classpath.clone();
           }