testcase to come... --- [EMAIL PROTECTED] wrote:
> Author: mbenson > Date: Thu Oct 6 12:14:49 2005 > New Revision: 306851 > > URL: > http://svn.apache.org/viewcvs?rev=306851&view=rev > Log: > greedy input handler; will consume stdin completely > for unattended builds. > > Added: > > ant/core/trunk/src/main/org/apache/tools/ant/input/GreedyInputHandler.java > (with props) > > Added: > ant/core/trunk/src/main/org/apache/tools/ant/input/GreedyInputHandler.java > URL: > http://svn.apache.org/viewcvs/ant/core/trunk/src/main/org/apache/tools/ant/input/GreedyInputHandler.java?rev=306851&view=auto > ============================================================================== > --- > ant/core/trunk/src/main/org/apache/tools/ant/input/GreedyInputHandler.java > (added) > +++ > ant/core/trunk/src/main/org/apache/tools/ant/input/GreedyInputHandler.java > Thu Oct 6 12:14:49 2005 > @@ -0,0 +1,80 @@ > +/* > + * Copyright 2005 The Apache Software Foundation > + * > + * Licensed under the Apache License, Version 2.0 > (the "License"); > + * you may not use this file except in compliance > with the License. > + * You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to > in writing, software > + * distributed under the License is distributed on > an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, > either express or implied. > + * See the License for the specific language > governing permissions and > + * limitations under the License. > + * > + */ > + > +package org.apache.tools.ant.input; > + > +import java.io.InputStream; > +import java.io.IOException; > +import java.io.ByteArrayOutputStream; > +import org.apache.tools.ant.BuildException; > +import org.apache.tools.ant.taskdefs.StreamPumper; > +import org.apache.tools.ant.util.FileUtils; > + > +/** > + * Prompts on System.err, reads input from > System.in until EOF > + * > + * @since Ant 1.7 > + */ > +public class GreedyInputHandler extends > DefaultInputHandler { > + > + private static final int BUFFER_SIZE = 1024; > + > + /** > + * Empty no-arg constructor > + */ > + public GreedyInputHandler() { > + } > + > + /** > + * Prompts and requests input. > + * @param request the request to handle > + * @throws BuildException if not possible to > read from console, > + * or if input is invalid. > + */ > + public void handleInput(InputRequest request) > throws BuildException { > + String prompt = getPrompt(request); > + InputStream in = null; > + try { > + in = getInputStream(); > + System.err.println(prompt); > + System.err.flush(); > + ByteArrayOutputStream baos = new > ByteArrayOutputStream(); > + StreamPumper p = new StreamPumper(in, > baos); > + Thread t = new Thread(p); > + t.start(); > + try { > + t.join(); > + } catch (InterruptedException e) { > + try { > + t.join(); > + } catch (InterruptedException e2) { > + } > + } > + request.setInput(new > String(baos.toByteArray())); > + if (!(request.isInputValid())) { > + throw new BuildException( > + "Received invalid console > input"); > + } > + if (p.getException() != null) { > + throw new BuildException( > + "Failed to read input from > console", p.getException()); > + } > + } finally { > + FileUtils.close(in); > + } > + } > +} > > Propchange: > ant/core/trunk/src/main/org/apache/tools/ant/input/GreedyInputHandler.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > > __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]