Repository: camel
Updated Branches:
  refs/heads/master 1fadfc8f2 -> 24dd79f01


[CAMEL-9390] Camel-git: Allow to specify username/email on a commit operation


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/24dd79f0
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/24dd79f0
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/24dd79f0

Branch: refs/heads/master
Commit: 24dd79f0187bfefae92a398efb8ad40ad449a276
Parents: 1fadfc8
Author: Andrea Cosentino <anco...@gmail.com>
Authored: Sat Dec 5 11:00:16 2015 +0100
Committer: Andrea Cosentino <anco...@gmail.com>
Committed: Sat Dec 5 11:00:16 2015 +0100

----------------------------------------------------------------------
 .../camel/component/git/GitConstants.java       |  4 +++
 .../component/git/producer/GitProducer.java     | 27 ++++++++++++++++++--
 2 files changed, 29 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/24dd79f0/components/camel-git/src/main/java/org/apache/camel/component/git/GitConstants.java
----------------------------------------------------------------------
diff --git 
a/components/camel-git/src/main/java/org/apache/camel/component/git/GitConstants.java
 
b/components/camel-git/src/main/java/org/apache/camel/component/git/GitConstants.java
index ce90b82..0d4f518 100644
--- 
a/components/camel-git/src/main/java/org/apache/camel/component/git/GitConstants.java
+++ 
b/components/camel-git/src/main/java/org/apache/camel/component/git/GitConstants.java
@@ -22,4 +22,8 @@ public interface GitConstants {
     String GIT_FILE_NAME = "CamelGitFilename";
 
     String GIT_COMMIT_MESSAGE = "CamelGitCommitMessage";
+    
+    String GIT_COMMIT_USERNAME = "CamelGitCommitUsername";
+    
+    String GIT_COMMIT_EMAIL = "CamelGitCommitEmail";
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/24dd79f0/components/camel-git/src/main/java/org/apache/camel/component/git/producer/GitProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-git/src/main/java/org/apache/camel/component/git/producer/GitProducer.java
 
b/components/camel-git/src/main/java/org/apache/camel/component/git/producer/GitProducer.java
index 3c225e8..0f10f29 100644
--- 
a/components/camel-git/src/main/java/org/apache/camel/component/git/producer/GitProducer.java
+++ 
b/components/camel-git/src/main/java/org/apache/camel/component/git/producer/GitProducer.java
@@ -29,6 +29,7 @@ import org.eclipse.jgit.api.Git;
 import org.eclipse.jgit.api.ListBranchCommand.ListMode;
 import org.eclipse.jgit.api.PullResult;
 import org.eclipse.jgit.api.Status;
+import org.eclipse.jgit.lib.PersonIdent;
 import org.eclipse.jgit.lib.Ref;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevCommit;
@@ -224,16 +225,27 @@ public class GitProducer extends DefaultProducer {
 
     protected void doCommit(Exchange exchange, String operation) throws 
Exception {
         String commitMessage = null;
+        String username = null;
+        String email = null;
         if 
(ObjectHelper.isNotEmpty(exchange.getIn().getHeader(GitConstants.GIT_COMMIT_MESSAGE)))
 {
             commitMessage = 
exchange.getIn().getHeader(GitConstants.GIT_COMMIT_MESSAGE, String.class);
         } else {
             throw new IllegalArgumentException("Commit message must be 
specified to execute " + operation);
         }
+        if 
(ObjectHelper.isNotEmpty(exchange.getIn().getHeader(GitConstants.GIT_COMMIT_USERNAME))
 
+                && 
ObjectHelper.isNotEmpty(exchange.getIn().getHeader(GitConstants.GIT_COMMIT_EMAIL)))
 {
+            username = 
exchange.getIn().getHeader(GitConstants.GIT_COMMIT_USERNAME, String.class);
+            email = exchange.getIn().getHeader(GitConstants.GIT_COMMIT_EMAIL, 
String.class);
+        }
         try {
             if (ObjectHelper.isNotEmpty(endpoint.getBranchName())) {
                 
git.checkout().setCreateBranch(false).setName(endpoint.getBranchName()).call();
             }
-            git.commit().setMessage(commitMessage).call();
+            if (ObjectHelper.isNotEmpty(username) && 
ObjectHelper.isNotEmpty(email)) {
+                git.commit().setCommitter(username, 
email).setMessage(commitMessage).call();
+            } else {
+                git.commit().setMessage(commitMessage).call();
+            }
         } catch (Exception e) {
             LOG.error("There was an error in Git " + operation + " operation");
             throw e;
@@ -242,16 +254,27 @@ public class GitProducer extends DefaultProducer {
 
     protected void doCommitAll(Exchange exchange, String operation) throws 
Exception {
         String commitMessage = null;
+        String username = null;
+        String email = null;
         if 
(ObjectHelper.isNotEmpty(exchange.getIn().getHeader(GitConstants.GIT_COMMIT_MESSAGE)))
 {
             commitMessage = 
exchange.getIn().getHeader(GitConstants.GIT_COMMIT_MESSAGE, String.class);
         } else {
             throw new IllegalArgumentException("Commit message must be 
specified to execute " + operation);
         }
+        if 
(ObjectHelper.isNotEmpty(exchange.getIn().getHeader(GitConstants.GIT_COMMIT_USERNAME))
 
+                && 
ObjectHelper.isNotEmpty(exchange.getIn().getHeader(GitConstants.GIT_COMMIT_EMAIL)))
 {
+            username = 
exchange.getIn().getHeader(GitConstants.GIT_COMMIT_USERNAME, String.class);
+            email = exchange.getIn().getHeader(GitConstants.GIT_COMMIT_EMAIL, 
String.class);
+        }
         try {
             if (ObjectHelper.isNotEmpty(endpoint.getBranchName())) {
                 
git.checkout().setCreateBranch(false).setName(endpoint.getBranchName()).call();
             }
-            git.commit().setAll(true).setMessage(commitMessage).call();
+            if (ObjectHelper.isNotEmpty(username) && 
ObjectHelper.isNotEmpty(email)) {
+                git.commit().setAll(true).setCommitter(username, 
email).setMessage(commitMessage).call();
+            } else {
+                git.commit().setAll(true).setMessage(commitMessage).call();
+            }
         } catch (Exception e) {
             LOG.error("There was an error in Git " + operation + " operation");
             throw e;

Reply via email to