From 4cafe0f5031f7ca0be79f2e4944b535a8c812ac5 Mon Sep 17 00:00:00 2001 From: Clemens Quoss Date: Fri, 23 Jul 2021 23:48:53 +0200 Subject: [PATCH] [SCM-948] Make limit parameter work for svnexe and gitexe changelog goal This closes #119 --- .../changelog/GitChangeLogCommand.java | 33 ++++++++++++++++++- .../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 e4879ba25..6f87a431b 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.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 Emmanuel Venisse @@ -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 @@ protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo } /** {@inheritDoc} */ + @Override protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet, Date startDate, Date endDate, ScmBranch branch, String datePattern ) @@ -148,9 +169,19 @@ protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo // ---------------------------------------------------------------------- /** - * this constructs creates the commandline for the git-whatchanged command. + * This method creates the commandline for the git-whatchanged command. + *

* 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 7f50bb707..aa94af22b 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.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 Emmanuel Venisse @@ -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 @@ protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo /** {@inheritDoc} */ @Deprecated + @Override protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet, Date startDate, Date endDate, ScmBranch branch, String datePattern )