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 2003/06/10 15:29:56 UTC

cvs commit: ant/src/main/org/apache/tools/ant/taskdefs LogOutputStream.java Redirector.java

conor       2003/06/10 06:29:56

  Modified:    src/main/org/apache/tools/ant DemuxInputStream.java
                        Main.java Project.java
               src/main/org/apache/tools/ant/taskdefs LogOutputStream.java
                        Redirector.java
  Log:
  Various I/O fixes to support input from java tasks.
  Addition of a -noinput flag to indicate input is not allowed
  to prevent locking up non-interactive builds.
  
  PR:	18133
  
  Revision  Changes    Path
  1.3       +3 -1      ant/src/main/org/apache/tools/ant/DemuxInputStream.java
  
  Index: DemuxInputStream.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/DemuxInputStream.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -w -u -r1.2 -r1.3
  --- DemuxInputStream.java	10 Feb 2003 14:13:30 -0000	1.2
  +++ DemuxInputStream.java	10 Jun 2003 13:29:55 -0000	1.3
  @@ -86,7 +86,9 @@
        */
       public int read() throws IOException {
           byte[] buffer = new byte[1];
  -        project.demuxInput(buffer, 0, 1);
  +        if (project.demuxInput(buffer, 0, 1) == -1) {
  +            return -1;
  +        }
           return buffer[0];
       }
       
  
  
  
  1.83      +9 -1      ant/src/main/org/apache/tools/ant/Main.java
  
  Index: Main.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/Main.java,v
  retrieving revision 1.82
  retrieving revision 1.83
  diff -u -w -u -r1.82 -r1.83
  --- Main.java	15 Apr 2003 17:23:15 -0000	1.82
  +++ Main.java	10 Jun 2003 13:29:55 -0000	1.83
  @@ -108,6 +108,9 @@
       /** File names of property files to load on startup. */
       private Vector propertyFiles = new Vector(5);
   
  +    /** Indicates whether this build is to support interactive input */
  +    private boolean allowInput = true;
  +    
       /**
        * The Ant logger class. There may be only one logger. It will have
        * the right to use the 'out' PrintStream. The class must implements the
  @@ -280,6 +283,8 @@
               } else if (arg.equals("-debug")) {
                   printVersion();
                   msgOutputLevel = Project.MSG_DEBUG;
  +            } else if (arg.equals("-noinput")) {
  +                allowInput = false;
               } else if (arg.equals("-logfile") || arg.equals("-l")) {
                   try {
                       File logFile = new File(args[i + 1]);
  @@ -571,7 +576,9 @@
                   //System.setSecurityManager(new NoExitSecurityManager());
               }
               try {
  +                if (allowInput) { 
                   project.setDefaultInputStream(System.in);
  +                }
                   System.setIn(new DemuxInputStream(project));
                   System.setOut(new PrintStream(new DemuxOutputStream(project, false)));
                   System.setErr(new PrintStream(new DemuxOutputStream(project, true)));
  @@ -751,6 +758,7 @@
           msg.append("    -l     <file>                ''" + lSep);
           msg.append("  -logger <classname>    the class which is to perform logging" + lSep);
           msg.append("  -listener <classname>  add an instance of class as a project listener" + lSep);
  +        msg.append("  -noinput               do not allow interactive input" + lSep);
           msg.append("  -buildfile <file>      use given buildfile" + lSep);
           msg.append("    -file    <file>              ''" + lSep);
           msg.append("    -f       <file>              ''" + lSep);
  
  
  
  1.140     +2 -1      ant/src/main/org/apache/tools/ant/Project.java
  
  Index: Project.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/Project.java,v
  retrieving revision 1.139
  retrieving revision 1.140
  diff -u -w -u -r1.139 -r1.140
  --- Project.java	9 Jun 2003 13:38:06 -0000	1.139
  +++ Project.java	10 Jun 2003 13:29:55 -0000	1.140
  @@ -1087,6 +1087,7 @@
       public int defaultInput(byte[] buffer, int offset, int length)
           throws IOException {
           if (defaultInputStream != null) {
  +            System.out.flush();
               return defaultInputStream.read(buffer, offset, length);
           } else {
               throw new EOFException("No input provided for project");
  
  
  
  1.10      +7 -0      ant/src/main/org/apache/tools/ant/taskdefs/LogOutputStream.java
  
  Index: LogOutputStream.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/LogOutputStream.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -w -u -r1.9 -r1.10
  --- LogOutputStream.java	10 Feb 2003 14:13:35 -0000	1.9
  +++ LogOutputStream.java	10 Jun 2003 13:29:56 -0000	1.10
  @@ -109,6 +109,13 @@
           skip = (c == '\r');
       }
   
  +    /**
  +     * Flush this log stream 
  +     */
  +    public void flush() {
  +       processBuffer();
  +    }
  +    
   
       /**
        * Converts the buffer to a string and sends it to <code>processLine</code>
  
  
  
  1.5       +1 -0      ant/src/main/org/apache/tools/ant/taskdefs/Redirector.java
  
  Index: Redirector.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Redirector.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -w -u -r1.4 -r1.5
  --- Redirector.java	14 Apr 2003 11:42:14 -0000	1.4
  +++ Redirector.java	10 Jun 2003 13:29:56 -0000	1.5
  @@ -399,6 +399,7 @@
               outPrintStream = new PrintStream(outputStream);
           }
           outPrintStream.print(line);
  +        outPrintStream.flush();
       }
       
       /**
  
  
  

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