You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2021/08/07 20:10:06 UTC

[maven-scm] branch SCM-947 created (now f21ca5a)

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a change to branch SCM-947
in repository https://gitbox.apache.org/repos/asf/maven-scm.git.


      at f21ca5a  [SCM-947] Improve ChangeLogMojo by using ChangeLogRequest

This branch includes the following new commits:

     new f21ca5a  [SCM-947] Improve ChangeLogMojo by using ChangeLogRequest

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[maven-scm] 01/01: [SCM-947] Improve ChangeLogMojo by using ChangeLogRequest

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch SCM-947
in repository https://gitbox.apache.org/repos/asf/maven-scm.git

commit f21ca5a8c55f05130db98400d85506a383628138
Author: Clemens Quoss <cl...@quoss.de>
AuthorDate: Sun Nov 29 13:35:10 2020 +0100

    [SCM-947] Improve ChangeLogMojo by using ChangeLogRequest
    
    This closes #109
---
 .../org/apache/maven/scm/plugin/ChangeLogMojo.java | 80 ++++++++++++++++++----
 1 file changed, 67 insertions(+), 13 deletions(-)

diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java
index 8de8056..f033ae2 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java
@@ -26,6 +26,7 @@ import org.apache.maven.scm.ChangeSet;
 import org.apache.maven.scm.ScmBranch;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmVersion;
+import org.apache.maven.scm.command.changelog.ChangeLogScmRequest;
 import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
 import org.apache.maven.scm.command.changelog.ChangeLogSet;
 import org.apache.maven.scm.provider.ScmProvider;
@@ -47,6 +48,7 @@ import java.util.Date;
 public class ChangeLogMojo
     extends AbstractScmMojo
 {
+
     private static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
 
     /**
@@ -110,6 +112,24 @@ public class ChangeLogMojo
     private String scmVersion;
 
     /**
+     * The branch name (TODO find out what this is for).
+     */
+    @Parameter( property = "scmBranch" )
+    private String scmBranch;
+
+    /**
+     * The number of change log items to return.
+     */
+    @Parameter( property = "limit" )
+    private Integer limit;
+
+    /**
+     * The number of days to look back for change log items to return.
+     */
+    @Parameter( property = "numDays" )
+    private Integer numDays;
+
+    /**
      * {@inheritDoc}
      */
     public void execute()
@@ -125,24 +145,58 @@ public class ChangeLogMojo
 
             ScmProvider provider = getScmManager().getProviderByRepository( repository );
 
-            ScmVersion startRev =
-                getScmVersion( StringUtils.isEmpty( startScmVersionType ) ? VERSION_TYPE_REVISION
-                               : startScmVersionType, startScmVersion );
-            ScmVersion endRev =
-                getScmVersion( StringUtils.isEmpty( endScmVersionType ) ? VERSION_TYPE_REVISION
-                               : endScmVersionType, endScmVersion );
+            ChangeLogScmRequest request = new ChangeLogScmRequest( repository, getFileSet() );
+
+            request.setDatePattern( dateFormat );
+
+            if ( StringUtils.isNotEmpty( startDate ) )
+            {
+                request.setStartDate( parseDate( localFormat, startDate ) );
+            }
+
+            if ( StringUtils.isNotEmpty( endDate ) )
+            {
+                request.setEndDate( parseDate( localFormat, endDate ) );
+            }
+
+            if ( StringUtils.isNotEmpty( startScmVersion ) )
+            {
+                ScmVersion startRev =
+                    getScmVersion( StringUtils.isEmpty( startScmVersionType ) ? VERSION_TYPE_REVISION
+                        : startScmVersionType, startScmVersion );
+                request.setStartRevision( startRev );
+            }
 
-            ChangeLogScmResult result;
-            if ( startRev != null || endRev != null )
+            if ( StringUtils.isNotEmpty( endScmVersion ) )
             {
-                result = provider.changeLog( repository, getFileSet(), startRev, endRev, dateFormat );
+                ScmVersion endRev =
+                    getScmVersion( StringUtils.isEmpty( endScmVersionType ) ? VERSION_TYPE_REVISION
+                        : endScmVersionType, endScmVersion );
+                request.setEndRevision( endRev );
             }
-            else
+
+            request.setLimit( limit );
+
+            if ( numDays != null )
             {
-                result = provider.changeLog( repository, getFileSet(), this.parseDate( localFormat, this.startDate ),
-                                             this.parseDate( localFormat, this.endDate ), 0,
-                                             (ScmBranch) getScmVersion( scmVersionType, scmVersion ), dateFormat );
+                request.setNumDays( numDays );
             }
+
+            if ( StringUtils.isNotEmpty( scmVersion ) )
+            {
+                ScmVersion rev =
+                    getScmVersion( StringUtils.isEmpty( scmVersionType ) ? VERSION_TYPE_REVISION
+                        : scmVersionType, scmVersion );
+                request.setRevision( rev );
+            }
+
+            if ( StringUtils.isNotEmpty( scmBranch ) )
+            {
+                request.setScmBranch( new ScmBranch( scmBranch ) );
+            }
+
+            ChangeLogScmResult result = provider.changeLog( request );
+
             checkResult( result );
 
             ChangeLogSet changeLogSet = result.getChangeLog();