[ http://jira.codehaus.org/browse/MRELEASE-263?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=153359#action_153359 ]
Sean Flanigan commented on MRELEASE-263: ---------------------------------------- Never mind, upon closer investigation, mvn release:prepare doesn't even seem to use StreamPumper, it has its own RawStreamPumper. My problem was caused by a shell alias I had forgotten about which passes mvn output through awk (which buffers by lines). > Interactive plugins cannot work in forked executions > ---------------------------------------------------- > > Key: MRELEASE-263 > URL: http://jira.codehaus.org/browse/MRELEASE-263 > Project: Maven 2.x Release Plugin > Issue Type: Bug > Affects Versions: 2.0-beta-6 > Reporter: Daniel Kulp > Priority: Critical > > I was looking into the problems with the GPG plugin when run from the > release plugin and the problems seem to entirely be problems of the > release plugin and Plexus utils. They are showing up in the gpg > plugin, but any plugin that tries to do anything interactively would > most likely run into the same problems. > Issues: > 1) System.in - the release manager doesn't feed anything from System.in > into the forked process. I tried adding System.in to the > CommandLineUtils.executeCommandLine call, but that just causes a hang. > CommandLineUtils will wait until the "in" stream is completely consumed > (returns -1) before returning. With System.in, that never will happen. > 2) Buffered(line style) out - the StreamPumpers use > BufferedInputStream.readLine() to pump from one stream to the other. > This won't work. Anything that does something (like the release plugin > itself) that prompts and then waits for a response on the same line will > appear to just "hang" as the prompt will never make it to the screen. > Basically, those two issues completely prevent us from being able to > un-hard code GPG passphrases from build scripts and such. (unless you > set gpg.useagent to true and use an agent) > In anycase, MGPG-9 is really a release plugin bug although part of it is > due to plexus-utils not providing the support it would need to work > properly. Most likely, we'll need to add a method in CommandLineUtils > that would just take the raw streams (in/out/err) and do straight byte > copy reads without the line buffering. (and once the process > completely, stop pumping the in stream) (of course, that would then > require another plexus-utils release and then the release plugin would > only work with Maven 2.0.6+ with the utils shaded, but that may be > minor) I'll poke around more and see if I can come up with something. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira