[ 
https://issues.apache.org/jira/browse/SCM-460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17961646#comment-17961646
 ] 

ASF GitHub Bot commented on SCM-460:
------------------------------------

jira-importer opened a new issue, #678:
URL: https://github.com/apache/maven-scm/issues/678

   **[Stas 
Garifulin](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=feerbach)**
 opened 
**[SCM-460](https://issues.apache.org/jira/browse/SCM-460?redirect=false)** and 
commented
   
   ```
       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 
);
       }
   ```
   
   ```
       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:
   
   ```
       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 );
       }
   ```
   
   
   
   ---
   
   **Affects:** 1.2
   
   **Issue Links:**
   - [MRELEASE-442](https://issues.apache.org/jira/browse/MRELEASE-442) scm tag 
phase ignores custom message (need to use scm 1.3)
    (_**"is depended upon by"**_)
   




> tag command ignores custom message parameter
> --------------------------------------------
>
>                 Key: SCM-460
>                 URL: https://issues.apache.org/jira/browse/SCM-460
>             Project: Maven SCM (Moved to GitHub Issues)
>          Issue Type: Bug
>          Components: maven-scm-api
>    Affects Versions: 1.2
>         Environment: maven-release-plugin-2.0-beta-9
>            Reporter: Stas Garifulin
>            Assignee: Olivier Lamy
>            Priority: Major
>             Fix For: 1.3
>
>
> {code:title=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 );
>     }
> {code}
> {code:title=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 );
>     }
> {code}
> 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:
> {code:title=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 );
>     }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to