You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Benson Margulies (JIRA)" <ji...@codehaus.org> on 2014/03/05 02:34:01 UTC

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

     [ https://jira.codehaus.org/browse/MRELEASE-263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benson Margulies updated MRELEASE-263:
--------------------------------------

    Fix Version/s:     (was: 2.5)
                   Backlog

> Interactive plugins cannot work in forked executions
> ----------------------------------------------------
>
>                 Key: MRELEASE-263
>                 URL: https://jira.codehaus.org/browse/MRELEASE-263
>             Project: Maven Release Plugin
>          Issue Type: Bug
>          Components: prepare
>    Affects Versions: 2.0-beta-6
>            Reporter: Daniel Kulp
>            Priority: Critical
>             Fix For: Backlog
>
>
> 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 was sent by Atlassian JIRA
(v6.1.6#6162)