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:07 UTC
[maven-scm] 01/01: [SCM-947] Improve ChangeLogMojo by using
ChangeLogRequest
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();