diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java b/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java index 7fcc4621c..e35afad9a 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java @@ -93,6 +93,13 @@ public class CommandParameter implements Serializable { */ public static final CommandParameter IGNORE_WHITESPACE = new CommandParameter("ignoreWhitespace"); + /** + * Parameter to indicate whether the commit should be signed or not. + * if false (default true) this will be used by the Git provider to pass the --no-signoff option to the commit command. + * @since 2.1.1 + */ + public static final CommandParameter SCM_COMMIT_SIGN = new CommandParameter("gitCommitSign"); + /** * Parameter name */ diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameters.java b/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameters.java index 4f9cd187e..8711ab257 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameters.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameters.java @@ -187,8 +187,7 @@ public boolean getBoolean(CommandParameter parameter) throws ScmException { * @throws ScmException if the parameter doesn't exist */ public boolean getBoolean(CommandParameter parameter, boolean defaultValue) throws ScmException { - return Boolean.valueOf(getString(parameter, Boolean.toString(defaultValue))) - .booleanValue(); + return Boolean.parseBoolean(getString(parameter, Boolean.toString(defaultValue))); } // ---------------------------------------------------------------------- diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmTagParameters.java b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmTagParameters.java index c3f7dcf51..fb07ba3a7 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmTagParameters.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmTagParameters.java @@ -35,6 +35,8 @@ public class ScmTagParameters implements Serializable { private boolean sign = false; + private boolean forceNoSign = false; + private String scmRevision; public ScmTagParameters() { @@ -87,7 +89,22 @@ public void setScmRevision(String scmRevision) { this.scmRevision = scmRevision; } + public boolean isForceNoSign() { + return forceNoSign; + } + + public void setForceNoSign(boolean forceNoSign) { + this.forceNoSign = forceNoSign; + } + + @Override public String toString() { - return "[" + scmRevision + "] " + message; + return "ScmTagParameters{" + "message='" + + message + '\'' + ", remoteTagging=" + + remoteTagging + ", pinExternals=" + + pinExternals + ", sign=" + + sign + ", forceNoSign=" + + forceNoSign + ", scmRevision='" + + scmRevision + '\'' + '}'; } } diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java b/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java index 5abd458a0..7df90d2c6 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java @@ -25,6 +25,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import org.apache.maven.scm.CommandParameters; import org.apache.maven.scm.ScmBranch; import org.apache.maven.scm.ScmBranchParameters; import org.apache.maven.scm.ScmException; @@ -388,6 +389,12 @@ public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, Sc return this.getProviderByRepository(repository).checkIn(repository, fileSet, revision, message); } + @Override + public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, CommandParameters commandParameters) + throws ScmException { + return this.getProviderByRepository(repository).checkIn(repository, fileSet, commandParameters); + } + /** * {@inheritDoc} */ diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java b/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java index 3e893a23a..abb7ea6e6 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java @@ -22,6 +22,7 @@ import java.util.Date; import java.util.List; +import org.apache.maven.scm.CommandParameters; import org.apache.maven.scm.ScmBranch; import org.apache.maven.scm.ScmException; import org.apache.maven.scm.ScmFileSet; @@ -280,6 +281,23 @@ ChangeLogScmResult changeLog( */ CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, String message) throws ScmException; + /** + * Save the changes you have done into the repository. This will create a new version of the file or directory in + * the repository. + *
+ * When the fileSet has no entries, the {@code fileSet.getBasedir()} is recursively committed. When the fileSet + * has entries, the commit is non-recursive and only the elements in the fileSet are committed. + * + * @param repository the source control system + * @param fileSet the files to check in (sometimes called commit) + * @param commandParameters parameters for the command, such as commit message and whether to sign the commit. {@link CommandParameters} + * @return a {@link CheckInScmResult} that contains the file paths (relative to {@code fileSet.getBasedir()}) that + * have been checked in. + * @throws ScmException if any + */ + CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, CommandParameters commandParameters) + throws ScmException; + /** * Save the changes you have done into the repository. This will create a new version of the file or directory in * the repository. diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java b/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java index 414156b28..ea310a0c1 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java @@ -416,6 +416,16 @@ public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, Sc return checkin(repository.getProviderRepository(), fileSet, parameters); } + @Override + public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters) + throws ScmException { + return checkIn( + repository, + fileSet, + parameters.getScmVersion(CommandParameter.SCM_VERSION, null), + parameters.getString(CommandParameter.MESSAGE)); + } + protected CheckInScmResult checkin( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters) throws ScmException { throw new NoSuchCommandScmException("checkin"); diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java b/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java index 72593d5ef..ed03de647 100644 --- a/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java +++ b/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java @@ -405,6 +405,23 @@ CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, String ta */ CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, String message) throws ScmException; + /** + * Save the changes you have done into the repository. This will create a new version of the file or + * directory in the repository. + *
+ * When the fileSet has no entries, the fileSet.getBaseDir() is recursively committed.
+ * When the fileSet has entries, the commit is non-recursive and only the elements in the fileSet
+ * are committed.
+ *
+ * @param repository the source control system
+ * @param fileSet the files to check in (sometimes called commit)
+ * @param parameters {@link CommandParameters}
+ * @return TODO
+ * @throws ScmException if any
+ */
+ CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters)
+ throws ScmException;
+
/**
* Save the changes you have done into the repository. This will create a new version of the file or
* directory in the repository.
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
index 3c72777c5..3e3c2bf6f 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
@@ -107,6 +107,14 @@ public class TagMojo extends AbstractScmMojo {
@Parameter(property = "sign", defaultValue = "false")
private boolean sign;
+ /**
+ * Enable the "--no-sign" in Git
+ *
+ * @since 2.1.1
+ */
+ @Parameter(property = "forceNoSign", defaultValue = "false")
+ private boolean forceNoSign;
+
@Inject
public TagMojo(ScmManager manager, SettingsDecrypter settingsDecrypter) {
super(manager, settingsDecrypter);
@@ -150,6 +158,7 @@ public void execute() throws MojoExecutionException {
scmTagParameters.setRemoteTagging(remoteTagging);
scmTagParameters.setPinExternals(pinExternals);
scmTagParameters.setSign(sign);
+ scmTagParameters.setForceNoSign(forceNoSign);
TagScmResult result = provider.tag(repository, getFileSet(), finalTag, scmTagParameters);
@@ -158,4 +167,20 @@ public void execute() throws MojoExecutionException {
throw new MojoExecutionException("Cannot run tag command : ", e);
}
}
+
+ public boolean isSign() {
+ return sign;
+ }
+
+ public void setSign(boolean sign) {
+ this.sign = sign;
+ }
+
+ public boolean isForceNoSign() {
+ return forceNoSign;
+ }
+
+ public void setForceNoSign(boolean forceNoSign) {
+ this.forceNoSign = forceNoSign;
+ }
}
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UntagMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UntagMojoTest.java
index c47ab595d..4ed30b7e4 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UntagMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UntagMojoTest.java
@@ -72,6 +72,8 @@ public void testUntag() throws Exception {
TagMojo tagMojo = (TagMojo) lookupMojo("tag", getTestFile("src/test/resources/mojos/untag/tag.xml"));
tagMojo.setWorkingDirectory(checkoutDir);
+ tagMojo.setSign(false);
+ tagMojo.setForceNoSign(true);
tagMojo.setConnectionUrl(getConnectionLocalAddress(tagMojo));
tagMojo.execute();
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java
index 38aecb42f..c4cc398bc 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java
@@ -186,6 +186,12 @@ public CheckInScmResult checkin(ScmProviderRepository repository, ScmFileSet fil
return (CheckInScmResult) executeCommand(getCheckInCommand(), repository, fileSet, parameters);
}
+ @Override
+ public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters)
+ throws ScmException {
+ return (CheckInScmResult) getCheckInCommand().execute(repository.getProviderRepository(), fileSet, parameters);
+ }
+
protected abstract GitCommand getCheckOutCommand();
/** {@inheritDoc} */
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/tag/GitTagCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/tag/GitTagCommand.java
index 38ca106cc..9099156eb 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/tag/GitTagCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/tag/GitTagCommand.java
@@ -82,9 +82,13 @@ public ScmResult executeTagCommand(
int exitCode;
- boolean sign = scmTagParameters.isSign();
-
- Commandline clTag = createCommandLine(repository, fileSet.getBasedir(), tag, messageFile, sign);
+ Commandline clTag = createCommandLine(
+ repository,
+ fileSet.getBasedir(),
+ tag,
+ messageFile,
+ scmTagParameters.isSign(),
+ scmTagParameters.isForceNoSign());
exitCode = GitCommandLineUtils.execute(clTag, stdout, stderr);
if (exitCode != 0) {
@@ -127,13 +131,21 @@ public ScmResult executeTagCommand(
//
// ----------------------------------------------------------------------
- public static Commandline createCommandLine(
- GitScmProviderRepository repository, File workingDirectory, String tag, File messageFile, boolean sign) {
+ static Commandline createCommandLine(
+ GitScmProviderRepository repository,
+ File workingDirectory,
+ String tag,
+ File messageFile,
+ boolean sign,
+ boolean forceNoSign) {
Commandline cl = GitCommandLineUtils.getBaseGitCommandLine(workingDirectory, "tag");
if (sign) {
cl.createArg().setValue("-s");
}
+ if (forceNoSign) {
+ cl.createArg().setValue("--no-sign");
+ }
cl.createArg().setValue("-F");
cl.createArg().setValue(messageFile.getAbsolutePath());
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/tag/GitTagCommandTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/tag/GitTagCommandTest.java
index 7bafee418..e57008313 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/tag/GitTagCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/tag/GitTagCommandTest.java
@@ -52,7 +52,11 @@ public void setUp() throws Exception {
@Test
public void testCommandLineTag() throws Exception {
testCommandLine(
- "scm:git:http://foo.com/git/trunk", "my-tag-1", "git tag " + messageFileString + " my-tag-1", false);
+ "scm:git:http://foo.com/git/trunk",
+ "my-tag-1",
+ "git tag " + messageFileString + " my-tag-1",
+ false,
+ false);
}
@Test
@@ -61,30 +65,44 @@ public void testCommandLineWithUsernameAndTag() throws Exception {
"scm:git:http://anonymous@foo.com/git/trunk",
"my-tag-1",
"git tag " + messageFileString + " my-tag-1",
+ false,
false);
}
+ @Test
+ public void testCommandLineWithUsernameAndTagForceNoSign() throws Exception {
+ testCommandLine(
+ "scm:git:http://anonymous@foo.com/git/trunk",
+ "my-tag-1",
+ "git tag --no-sign " + messageFileString + " my-tag-1",
+ false,
+ true);
+ }
+
@Test
public void testCommandLineWithUsernameAndTagAndSign() throws Exception {
testCommandLine(
"scm:git:http://anonymous@foo.com/git/trunk",
"my-tag-1",
"git tag -s " + messageFileString + " my-tag-1",
- true);
+ true,
+ false);
}
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
- private void testCommandLine(String scmUrl, String tag, String commandLine, boolean sign) throws Exception {
+ private void testCommandLine(String scmUrl, String tag, String commandLine, boolean sign, boolean forceNoSign)
+ throws Exception {
File workingDirectory = getTestFile("target/git-checkin-command-test");
ScmRepository repository = getScmManager().makeScmRepository(scmUrl);
GitScmProviderRepository gitRepository = (GitScmProviderRepository) repository.getProviderRepository();
- Commandline cl = GitTagCommand.createCommandLine(gitRepository, workingDirectory, tag, messageFile, sign);
+ Commandline cl =
+ GitTagCommand.createCommandLine(gitRepository, workingDirectory, tag, messageFile, sign, forceNoSign);
assertCommandLine(commandLine, workingDirectory, cl);
}
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/checkin/GitCheckInCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/checkin/GitCheckInCommandTckTest.java
index 009a877a1..db1aa3410 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/checkin/GitCheckInCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/checkin/GitCheckInCommandTckTest.java
@@ -21,6 +21,8 @@
import java.io.File;
import java.io.IOException;
+import org.apache.maven.scm.CommandParameter;
+import org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.PlexusJUnit4TestCase;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.command.checkin.CheckInScmResult;
@@ -84,12 +86,20 @@ public void testRejectedNonFastForwardPush() throws Exception {
ScmFileSet blockingFileSet = createWorkspaceChange(rejectedRepo);
- CheckInScmResult blockingResult = getScmManager().checkIn(scmRepository, blockingFileSet, "Blocking commit");
+ CommandParameters commandParameters = new CommandParameters();
+ commandParameters.setString(CommandParameter.MESSAGE, "Blocking commit");
+ commandParameters.setString(CommandParameter.SCM_COMMIT_SIGN, "false");
+
+ CheckInScmResult blockingResult = getScmManager().checkIn(scmRepository, blockingFileSet, commandParameters);
assertResultIsSuccess(blockingResult);
ScmFileSet rejectedFileSet = createWorkspaceChange(blockingRepo);
- CheckInScmResult checkInScmResult = getScmManager().checkIn(scmRepository, rejectedFileSet, "Rejected commit");
+ commandParameters = new CommandParameters();
+ commandParameters.setString(CommandParameter.MESSAGE, "Rejected commit");
+ commandParameters.setString(CommandParameter.SCM_COMMIT_SIGN, "false");
+
+ CheckInScmResult checkInScmResult = getScmManager().checkIn(scmRepository, rejectedFileSet, commandParameters);
assertFalse(
"check-in should have been rejected since fast forward was not possible", checkInScmResult.isSuccess());
}
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
index d248860e2..02c57c855 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
@@ -26,6 +26,8 @@
import java.util.Set;
import org.apache.commons.lang3.StringUtils;
+import org.apache.maven.scm.CommandParameter;
+import org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.ScmException;
import org.apache.maven.scm.ScmFile;
import org.apache.maven.scm.ScmFileSet;
@@ -72,11 +74,12 @@ public class JGitCheckInCommand extends AbstractCheckInCommand implements GitCom
protected static final String GIT_FORCE = "forceUsername";
- /**
- * {@inheritDoc}
- */
- protected CheckInScmResult executeCheckInCommand(
- ScmProviderRepository repo, ScmFileSet fileSet, String message, ScmVersion version) throws ScmException {
+ @Override
+ public CheckInScmResult executeCommand(ScmProviderRepository repo, ScmFileSet fileSet, CommandParameters parameters)
+ throws ScmException {
+ String message = parameters.getString(CommandParameter.MESSAGE);
+
+ ScmVersion version = parameters.getScmVersion(CommandParameter.SCM_VERSION, null);
Git git = null;
try {
@@ -124,8 +127,11 @@ protected CheckInScmResult executeCheckInCommand(
UserInfo author = getAuthor(repo, git);
UserInfo committer = getCommitter(repo, git);
- CommitCommand command = git.commit().setMessage(message).setAuthor(author.name, author.email);
- command.setCommitter(committer.name, committer.email);
+ CommitCommand command = git.commit()
+ .setMessage(message)
+ .setAuthor(author.name, author.email)
+ .setCommitter(committer.name, committer.email)
+ .setSign(parameters.getBoolean(CommandParameter.SCM_COMMIT_SIGN, true));
RevCommit commitRev = command.call();
logger.info("commit done: " + commitRev.getShortMessage());
@@ -169,6 +175,18 @@ protected CheckInScmResult executeCheckInCommand(
}
}
+ /**
+ * {@inheritDoc}
+ */
+ protected CheckInScmResult executeCheckInCommand(
+ ScmProviderRepository repo, ScmFileSet fileSet, String message, ScmVersion version) throws ScmException {
+
+ CommandParameters parameters = new CommandParameters();
+ parameters.setString(CommandParameter.MESSAGE, message);
+ parameters.setScmVersion(CommandParameter.SCM_VERSION, version);
+ return executeCommand(repo, fileSet, parameters);
+ }
+
private boolean isSuccessStatus(RemoteRefUpdate.Status remoteRefUpdateStatus) {
return remoteRefUpdateStatus == RemoteRefUpdate.Status.OK
|| remoteRefUpdateStatus == RemoteRefUpdate.Status.UP_TO_DATE;
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/tag/JGitTagCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/tag/JGitTagCommand.java
index d288d6da4..997716478 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/tag/JGitTagCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/tag/JGitTagCommand.java
@@ -76,6 +76,7 @@ public ScmResult executeTagCommand(
// tag the revision
String tagMessage = scmTagParameters.getMessage();
Ref tagRef = git.tag()
+ .setSigned(scmTagParameters.isSign())
.setName(escapedTagName)
.setMessage(tagMessage)
.setForceUpdate(false)
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/changelog/JGitChangeLogCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/changelog/JGitChangeLogCommandTckTest.java
index d65a2e8aa..5f65e68e8 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/changelog/JGitChangeLogCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/changelog/JGitChangeLogCommandTckTest.java
@@ -21,6 +21,7 @@
import java.io.File;
import java.io.IOException;
+import org.apache.maven.scm.manager.ScmManager;
import org.apache.maven.scm.provider.git.GitScmTestUtils;
import org.apache.maven.scm.provider.git.command.changelog.GitChangeLogCommandTckTest;
import org.eclipse.jgit.util.FileUtils;
@@ -36,6 +37,12 @@ public String getScmUrl() throws Exception {
return GitScmTestUtils.getScmUrl(getRepositoryRoot(), "jgit");
}
+ @Override
+ protected ScmManager getScmManager() throws Exception {
+ ScmManager scmManager = super.getScmManager();
+ return scmManager;
+ }
+
@Override
protected void deleteDirectory(File directory) throws IOException {
if (directory.exists()) {
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandCommitterAuthorTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandCommitterAuthorTckTest.java
index 145996cde..17cfce51e 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandCommitterAuthorTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandCommitterAuthorTckTest.java
@@ -23,6 +23,8 @@
import java.io.IOException;
import java.io.PrintWriter;
+import org.apache.maven.scm.CommandParameter;
+import org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.ScmException;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.command.add.AddScmResult;
@@ -254,8 +256,12 @@ private void createAndCommitFile(File file, String username) throws Exception, S
assertResultIsSuccess(addResult);
+ CommandParameters commandParameters = new CommandParameters();
+ commandParameters.setString(CommandParameter.MESSAGE, "Commit message");
+ commandParameters.setString(CommandParameter.SCM_COMMIT_SIGN, "false");
+
CheckInScmResult result = getScmManager()
- .checkIn(scmRepository, new ScmFileSet(getWorkingCopy(), "**/Foo.java"), "Commit message");
+ .checkIn(scmRepository, new ScmFileSet(getWorkingCopy(), "**/Foo.java"), commandParameters);
assertResultIsSuccess(result);
}
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/manager/ScmManagerStub.java b/maven-scm-test/src/main/java/org/apache/maven/scm/manager/ScmManagerStub.java
index fc8c3b97d..1087f879b 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/manager/ScmManagerStub.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/manager/ScmManagerStub.java
@@ -23,6 +23,7 @@
import java.util.Date;
import java.util.List;
+import org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.ScmBranch;
import org.apache.maven.scm.ScmException;
import org.apache.maven.scm.ScmFileSet;
@@ -275,6 +276,12 @@ public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, Sc
return this.getProviderByRepository(repository).checkIn(repository, fileSet, revision, message);
}
+ @Override
+ public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, CommandParameters commandParameters)
+ throws ScmException {
+ return this.getProviderByRepository(repository).checkIn(repository, fileSet, commandParameters);
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/provider/ScmProviderStub.java b/maven-scm-test/src/main/java/org/apache/maven/scm/provider/ScmProviderStub.java
index 529e13ab3..894b09b83 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/provider/ScmProviderStub.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/provider/ScmProviderStub.java
@@ -485,6 +485,12 @@ public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, Sc
return getCheckInScmResult();
}
+ @Override
+ public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters)
+ throws ScmException {
+ return getCheckInScmResult();
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java
index a54539356..894978288 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java
@@ -23,6 +23,8 @@
import java.nio.file.Files;
import java.nio.file.Path;
+import org.apache.maven.scm.CommandParameter;
+import org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.ScmBranch;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmTckTestCase;
@@ -68,8 +70,12 @@ public void testBranchCommandTest() throws Exception {
this.edit(getWorkingCopy(), "readme.txt", null, getScmRepository());
changeReadmeTxt(readmeTxt.toPath());
+ CommandParameters commandParameters = new CommandParameters();
+ commandParameters.setString(CommandParameter.MESSAGE, "commit message");
+ commandParameters.setString(CommandParameter.SCM_COMMIT_SIGN, "false");
+
CheckInScmResult checkinResult =
- getScmManager().checkIn(getScmRepository(), new ScmFileSet(getWorkingCopy()), "commit message");
+ getScmManager().checkIn(getScmRepository(), new ScmFileSet(getWorkingCopy()), commandParameters);
assertResultIsSuccess(checkinResult);
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java
index cd0421b4f..ec40df28e 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/changelog/ChangeLogCommandTckTest.java
@@ -23,6 +23,8 @@
import java.util.List;
import org.apache.maven.scm.ChangeSet;
+import org.apache.maven.scm.CommandParameter;
+import org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.ScmBranch;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmTagParameters;
@@ -86,7 +88,10 @@ public void testChangeLogCommand() throws Exception {
// Make a change to the readme.txt and commit the change
this.edit(getWorkingCopy(), "readme.txt", null, getScmRepository());
ScmTestCase.makeFile(getWorkingCopy(), "/readme.txt", "changed readme.txt");
- CheckInScmResult checkInResult = provider.checkIn(getScmRepository(), fileSet, COMMIT_MSG);
+ CommandParameters commandParameters = new CommandParameters();
+ commandParameters.setString(CommandParameter.MESSAGE, COMMIT_MSG);
+ commandParameters.setString(CommandParameter.SCM_COMMIT_SIGN, "false");
+ CheckInScmResult checkInResult = provider.checkIn(getScmRepository(), fileSet, commandParameters);
assertTrue("Unable to checkin changes to the repository", checkInResult.isSuccess());
ScmTagParameters scmTagParameters = new ScmTagParameters();
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java
index 06c952400..409dbf2ba 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java
@@ -24,6 +24,8 @@
import java.util.List;
import java.util.Map;
+import org.apache.maven.scm.CommandParameter;
+import org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.ScmFile;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmFileStatus;
@@ -83,8 +85,12 @@ public void testCheckInCommandTest() throws Exception {
"src/main/java/Foo.java",
FilenameUtils.normalizeFilename(files.get(0).getPath()));
+ CommandParameters commandParameters = new CommandParameters();
+ commandParameters.setString(CommandParameter.MESSAGE, "Commit message");
+ commandParameters.setString(CommandParameter.SCM_COMMIT_SIGN, "false");
+
CheckInScmResult result =
- getScmManager().checkIn(getScmRepository(), new ScmFileSet(getWorkingCopy()), "Commit message");
+ getScmManager().checkIn(getScmRepository(), new ScmFileSet(getWorkingCopy()), commandParameters);
assertResultIsSuccess(result);
@@ -149,8 +155,12 @@ public void testCheckInCommandPartialFileset() throws Exception {
assertResultIsSuccess(addResult);
+ CommandParameters commandParameters = new CommandParameters();
+ commandParameters.setString(CommandParameter.MESSAGE, "Commit message");
+ commandParameters.setString(CommandParameter.SCM_COMMIT_SIGN, "false");
+
CheckInScmResult result = getScmManager()
- .checkIn(getScmRepository(), new ScmFileSet(getWorkingCopy(), "**/Foo.java", null), "Commit message");
+ .checkIn(getScmRepository(), new ScmFileSet(getWorkingCopy(), "**/Foo.java", null), commandParameters);
assertResultIsSuccess(result);
@@ -210,11 +220,15 @@ public void testCheckInCommandFilesetWithBasedirOtherThanWorkingCopyRoot() throw
"main/java/Foo.java",
FilenameUtils.normalizeFilename(files.get(0).getPath()));
+ CommandParameters commandParameters = new CommandParameters();
+ commandParameters.setString(CommandParameter.MESSAGE, "Commit message");
+ commandParameters.setString(CommandParameter.SCM_COMMIT_SIGN, "false");
+
CheckInScmResult result = getScmManager()
.checkIn(
getScmRepository(),
new ScmFileSet(new File(getWorkingCopy(), "src"), "**/Foo.java", null),
- "Commit message");
+ commandParameters);
assertResultIsSuccess(result);
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/remove/RemoveCommandTckTest.java b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/remove/RemoveCommandTckTest.java
index 0c7f61c8e..f9a29f6a5 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/remove/RemoveCommandTckTest.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/remove/RemoveCommandTckTest.java
@@ -21,6 +21,8 @@
import java.io.File;
import java.util.List;
+import org.apache.maven.scm.CommandParameter;
+import org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.ScmFile;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmFileStatus;
@@ -64,9 +66,13 @@ public void testRemoveCommand() throws Exception {
assertEquals(ScmFileStatus.DELETED, file1.getStatus());
assertPath("test/java/Test.java", file1.getPath());
+ CommandParameters commandParameters = new CommandParameters();
+ commandParameters.setString(CommandParameter.MESSAGE, "Commit message");
+ commandParameters.setString(CommandParameter.SCM_COMMIT_SIGN, "false");
+
// checkin changes
CheckInScmResult checkinResult =
- getScmManager().checkIn(getScmRepository(), new ScmFileSet(getWorkingCopy()), "Commit message");
+ getScmManager().checkIn(getScmRepository(), new ScmFileSet(getWorkingCopy()), commandParameters);
assertResultIsSuccess(checkinResult);
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java
index 220641f3d..36239cf12 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java
@@ -23,6 +23,8 @@
import java.util.List;
import java.util.TreeSet;
+import org.apache.maven.scm.CommandParameter;
+import org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.ScmFile;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmFileStatus;
@@ -60,7 +62,11 @@
public abstract class StatusCommandTckTest extends ScmTckTestCase {
protected void commit(File workingDirectory, ScmRepository repository) throws Exception {
- CheckInScmResult result = getScmManager().checkIn(repository, new ScmFileSet(workingDirectory), "No msg");
+ CommandParameters commandParameters = new CommandParameters();
+ commandParameters.setString(CommandParameter.MESSAGE, "No msg");
+ commandParameters.setString(CommandParameter.SCM_COMMIT_SIGN, "false");
+ CheckInScmResult result =
+ getScmManager().checkIn(repository, new ScmFileSet(workingDirectory), commandParameters);
assertTrue("Check result was successful, output: " + result.getCommandOutput(), result.isSuccess());
@@ -145,7 +151,7 @@ public void testStatusCommand() throws Exception {
// Assert the files in the updated files list
// ----------------------------------------------------------------------
- Iterator