Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.2
-
None
-
maven-release-plugin-2.0-beta-9
Description
org.apache.maven.scm.command.provider.AbstractScmProvider
public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tagName, ScmTagParameters scmTagParameters ) throws ScmException { login( repository, fileSet ); CommandParameters parameters = new CommandParameters(); parameters.setString( CommandParameter.TAG_NAME, tagName ); parameters.setScmTagParameters( CommandParameter.SCM_TAG_PARAMETERS, scmTagParameters ); return tag( repository.getProviderRepository(), fileSet, parameters ); }
org.apache.maven.scm.command.tag.AbstractTagCommand
public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters ) throws ScmException { String tagName = parameters.getString( CommandParameter.TAG_NAME ); String message = parameters.getString( CommandParameter.MESSAGE, "[maven-scm] copy for tag " + tagName ); ScmTagParameters scmTagParameters = parameters.getScmTagParameters( CommandParameter.SCM_TAG_PARAMETERS ); if (message != null) { scmTagParameters.setMessage( message ); } return executeTagCommand( repository, fileSet, tagName, scmTagParameters ); }
Maven release manager passes custom message to scm provider using the scmTagParameters argument.
Scm provider passes scmTagParameters to scm tag command (CommandParameter.SCM_TAG_PARAMETERS).
Scm tag command overrides the passed ScmTagParameters#message.
Correct implementation should be like this:
org.apache.maven.scm.command.tag.AbstractTagCommand
public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters ) throws ScmException { String tagName = parameters.getString( CommandParameter.TAG_NAME ); ScmTagParameters scmTagParameters = parameters.getScmTagParameters( CommandParameter.SCM_TAG_PARAMETERS ); String message = parameters.getString( CommandParameter.MESSAGE ); if (message != null) { // if message was passed by CommandParameter.MESSAGE then use it. scmTagParameters.setMessage( message ); } if(scmTagParameters.getMessage() == null) { // if message hasn't been passed nor by ScmTagParameters nor by CommandParameter.MESSAGE then use default. scmTagParameters.setMessage( "[maven-scm] copy for tag " + tagName ); } return executeTagCommand( repository, fileSet, tagName, scmTagParameters ); }
Attachments
Issue Links
- is depended upon by
-
MRELEASE-442 scm tag phase ignores custom message (need to use scm 1.3)
- Closed