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/05 20:42:35 UTC

[maven-scm] 01/01: [SCM-948] Make limit parameter work for svnexe and gitexe changelog goal

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

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

commit 4cafe0f5031f7ca0be79f2e4944b535a8c812ac5
Author: Clemens Quoss <cl...@quoss.de>
AuthorDate: Fri Jul 23 23:48:53 2021 +0200

    [SCM-948] Make limit parameter work for svnexe and gitexe changelog goal
    
    This closes #119
---
 .../command/changelog/GitChangeLogCommand.java     | 33 +++++++++++++++++++++-
 .../command/changelog/SvnChangeLogCommand.java     | 20 +++++++++++++
 2 files changed, 52 insertions(+), 1 deletion(-)

diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java
index e4879ba..6f87a43 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitChangeLogCommand.java
@@ -39,6 +39,9 @@ import java.io.File;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.TimeZone;
+import org.apache.maven.scm.CommandParameter;
+import org.apache.maven.scm.CommandParameters;
+import org.apache.maven.scm.ScmResult;
 
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
@@ -51,7 +54,24 @@ public class GitChangeLogCommand
 {
     private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss Z";
 
+    @Override
+    public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
+                                     CommandParameters parameters )
+        throws ScmException
+    {
+        return executeChangeLogCommand( repository, fileSet,
+                parameters.getDate( CommandParameter.START_DATE, null ),
+                parameters.getDate( CommandParameter.END_DATE, null ),
+                (ScmBranch) parameters.getScmVersion( CommandParameter.BRANCH, null ),
+                parameters.getString( CommandParameter.CHANGELOG_DATE_PATTERN, null ),
+                parameters.getScmVersion( CommandParameter.START_SCM_VERSION, null ),
+                parameters.getScmVersion( CommandParameter.END_SCM_VERSION, null ),
+                parameters.getInt( CommandParameter.LIMIT, -1 ),
+                parameters.getScmVersion( CommandParameter.SCM_VERSION, null ) );
+    }
+
     /** {@inheritDoc} */
+    @Override
     protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet,
                                                           ScmVersion startVersion, ScmVersion endVersion,
                                                           String datePattern )
@@ -61,6 +81,7 @@ public class GitChangeLogCommand
     }
 
     /** {@inheritDoc} */
+    @Override
     protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet,
                                                           Date startDate, Date endDate, ScmBranch branch,
                                                           String datePattern )
@@ -148,9 +169,19 @@ public class GitChangeLogCommand
     // ----------------------------------------------------------------------
 
     /**
-     * this constructs creates the commandline for the git-whatchanged command.
+     * This method creates the commandline for the git-whatchanged command.
+     * <p>
      * Since it uses --since and --until for the start and end date, the branch
      * and version parameters can be used simultanously. 
+     *
+     * @param repository Provider repositry to use.
+     * @param workingDirectory Working copy directory.
+     * @param branch Branch to run command on.
+     * @param startDate Start date of log entries.
+     * @param endDate End date of log entries.
+     * @param startVersion Start version of log entries.
+     * @param endVersion End version of log entries.
+     * @return Command line.
      */
     public static Commandline createCommandLine( GitScmProviderRepository repository, File workingDirectory,
                                                  ScmBranch branch, Date startDate, Date endDate,
diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommand.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommand.java
index 7f50bb7..aa94af2 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommand.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommand.java
@@ -44,6 +44,9 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Objects;
 import java.util.TimeZone;
+import org.apache.maven.scm.CommandParameter;
+import org.apache.maven.scm.CommandParameters;
+import org.apache.maven.scm.ScmResult;
 
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
@@ -56,8 +59,24 @@ public class SvnChangeLogCommand
 {
     private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss Z";
 
+    @Override
+    public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
+                                     CommandParameters parameters )
+        throws ScmException
+    {
+        return executeChangeLogCommand( repository, fileSet,
+                parameters.getDate( CommandParameter.START_DATE, null ),
+                parameters.getDate( CommandParameter.END_DATE, null ),
+                (ScmBranch) parameters.getScmVersion( CommandParameter.BRANCH, null ),
+                parameters.getString( CommandParameter.CHANGELOG_DATE_PATTERN, null ),
+                parameters.getScmVersion( CommandParameter.START_SCM_VERSION, null ),
+                parameters.getScmVersion( CommandParameter.END_SCM_VERSION, null ),
+                parameters.getInt( CommandParameter.LIMIT, -1 ) );
+    }
+
     /** {@inheritDoc} */
     @Deprecated
+    @Override
     protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet,
                                                           ScmVersion startVersion, ScmVersion endVersion,
                                                           String datePattern )
@@ -68,6 +87,7 @@ public class SvnChangeLogCommand
 
     /** {@inheritDoc} */
     @Deprecated
+    @Override
     protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet,
                                                           Date startDate, Date endDate, ScmBranch branch,
                                                           String datePattern )