[ https://jira.codehaus.org/browse/MRELEASE-263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stephen Connolly updated MRELEASE-263: -------------------------------------- Fix Version/s: (was: 2.2) 2.3 Pushing back to 2.3 as this is quite a large scope of work (at a minimum for testing) > Interactive plugins cannot work in forked executions > ---------------------------------------------------- > > Key: MRELEASE-263 > URL: https://jira.codehaus.org/browse/MRELEASE-263 > Project: Maven 2.x Release Plugin > Issue Type: Bug > Components: prepare > Affects Versions: 2.0-beta-6 > Reporter: Daniel Kulp > Priority: Critical > Fix For: 2.3 > > > 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. For more information on JIRA, see: http://www.atlassian.com/software/jira