You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Sean Flanigan (JIRA)" <ji...@codehaus.org> on 2008/11/05 03:23:51 UTC

[jira] Commented: (MRELEASE-263) Interactive plugins cannot work in forked executions

    [ http://jira.codehaus.org/browse/MRELEASE-263?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=153091#action_153091 ] 

Sean Flanigan commented on MRELEASE-263:
----------------------------------------

This breaks mvn release:prepare for me, because it appears to hang after this output:
[INFO] Checking dependencies and plugins for snapshots ...  

The output hangs without showing the prompt 
What is the release version for "<My Project>"? 

I don't know if issue (1) still exists, but issue (2) definitely does. Is there any sort of workaround?  I don't think I can put these values into my settings.xml!

And is there any reason we can't just change StreamPumper to copy char by char?  It might be slower, but at least it would work.

> 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