Repository: camel
Updated Branches:
  refs/heads/master 0bb63d5ba -> 8ab374b1e


CAMEL-10502 - Camel-git : Copy headers from in to out


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

Branch: refs/heads/master
Commit: 8ab374b1ea3074d64bbde4cfca25a6751572f622
Parents: 0bb63d5
Author: Olivier Antibi <olivier.ant...@crossing-tech.com>
Authored: Mon Nov 21 18:09:36 2016 +0100
Committer: Olivier Antibi <olivier.ant...@crossing-tech.com>
Committed: Mon Nov 21 22:44:44 2016 +0100

----------------------------------------------------------------------
 .../component/git/producer/GitProducer.java     | 18 ++++++---
 .../component/git/producer/GitProducerTest.java | 42 ++++++++++++++++----
 2 files changed, 46 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/8ab374b1/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 f6eae4f..b6bedd2 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
@@ -23,6 +23,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.component.git.GitConstants;
 import org.apache.camel.component.git.GitEndpoint;
 import org.apache.camel.impl.DefaultProducer;
+import org.apache.camel.util.MessageHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.eclipse.jgit.api.CherryPickResult;
 import org.eclipse.jgit.api.Git;
@@ -335,7 +336,7 @@ public class GitProducer extends DefaultProducer {
             LOG.error("There was an error in Git " + operation + " operation");
             throw e;
         }
-        exchange.getOut().setBody(status);
+        updateExchange(exchange, status);
     }
 
     protected void doLog(Exchange exchange, String operation) throws Exception 
{
@@ -349,7 +350,7 @@ public class GitProducer extends DefaultProducer {
             LOG.error("There was an error in Git " + operation + " operation");
             throw e;
         }
-        exchange.getOut().setBody(revCommit);
+        updateExchange(exchange, revCommit);
     }
 
     protected void doPush(Exchange exchange, String operation) throws 
Exception {
@@ -371,7 +372,7 @@ public class GitProducer extends DefaultProducer {
             LOG.error("There was an error in Git " + operation + " operation");
             throw e;
         }
-        exchange.getOut().setBody(result);
+        updateExchange(exchange, result);
     }
 
     protected void doPull(Exchange exchange, String operation) throws 
Exception {
@@ -393,7 +394,7 @@ public class GitProducer extends DefaultProducer {
             LOG.error("There was an error in Git " + operation + " operation");
             throw e;
         }
-        exchange.getOut().setBody(result);
+        updateExchange(exchange, result);
     }
 
     protected void doCreateTag(Exchange exchange, String operation) throws 
Exception {
@@ -428,7 +429,7 @@ public class GitProducer extends DefaultProducer {
             LOG.error("There was an error in Git " + operation + " operation");
             throw e;
         }
-        exchange.getOut().setBody(result);
+        updateExchange(exchange, result);
     }
 
     protected void doCherryPick(Exchange exchange, String operation) throws 
Exception {
@@ -452,7 +453,7 @@ public class GitProducer extends DefaultProducer {
             LOG.error("There was an error in Git " + operation + " operation");
             throw e;
         }
-        exchange.getOut().setBody(result);
+        updateExchange(exchange, result);
     }
 
     private Repository getLocalRepository() throws IOException {
@@ -471,4 +472,9 @@ public class GitProducer extends DefaultProducer {
         }
         return repo;
     }
+
+    private void updateExchange(Exchange exchange, Object body) {
+        exchange.getOut().setBody(body);
+        MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/8ab374b1/components/camel-git/src/test/java/org/apache/camel/component/git/producer/GitProducerTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-git/src/test/java/org/apache/camel/component/git/producer/GitProducerTest.java
 
b/components/camel-git/src/test/java/org/apache/camel/component/git/producer/GitProducerTest.java
index 920e2ec..35507b5 100755
--- 
a/components/camel-git/src/test/java/org/apache/camel/component/git/producer/GitProducerTest.java
+++ 
b/components/camel-git/src/test/java/org/apache/camel/component/git/producer/GitProducerTest.java
@@ -30,6 +30,7 @@ import 
org.eclipse.jgit.api.CreateBranchCommand.SetupUpstreamMode;
 import org.eclipse.jgit.api.Git;
 import org.eclipse.jgit.api.PullResult;
 import org.eclipse.jgit.api.Status;
+import org.eclipse.jgit.api.errors.GitAPIException;
 import org.eclipse.jgit.lib.Ref;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevCommit;
@@ -144,7 +145,7 @@ public class GitProducerTest extends GitTestSupport {
     public void commitTest() throws Exception {
 
         Repository repository = getTestRepository();
-
+        Git git = new Git(repository);
         File fileToAdd = new File(gitLocalRepo, filenameToAdd);
         fileToAdd.createNewFile();
 
@@ -166,13 +167,7 @@ public class GitProducerTest extends GitTestSupport {
                 exchange.getIn().setHeader(GitConstants.GIT_COMMIT_MESSAGE, 
commitMessage);
             }
         });
-        Iterable<RevCommit> logs = new Git(repository).log().call();
-        int count = 0;
-        for (RevCommit rev : logs) {
-            assertEquals(rev.getShortMessage(), commitMessage);
-            count++;
-        }
-        assertEquals(count, 1);
+        validateGitLogs(git, commitMessage);
         repository.close();
     }
 
@@ -212,6 +207,24 @@ public class GitProducerTest extends GitTestSupport {
     }
 
     @Test
+    public void addAndStatusAndCommitTest() throws Exception {
+        // Initialize repository using JGit
+        Repository repository = getTestRepository();
+        File gitDir = new File(gitLocalRepo, ".git");
+        assertEquals(gitDir.exists(), true);
+        Git git = new Git(repository);
+        File fileToAdd = new File(gitLocalRepo, filenameToAdd);
+        fileToAdd.createNewFile();
+        // Checking camel route
+        Map<String, Object> headers = new HashMap<>();
+        headers.put(GitConstants.GIT_FILE_NAME, filenameToAdd);
+        headers.put(GitConstants.GIT_COMMIT_MESSAGE, commitMessage);
+        template.requestBodyAndHeaders("direct:add-status-commit", "", 
headers);
+        validateGitLogs(git, commitMessage);
+        git.close();
+    }
+
+    @Test
     public void commitBranchTest() throws Exception {
 
         Repository repository = getTestRepository();
@@ -1076,6 +1089,16 @@ public class GitProducerTest extends GitTestSupport {
         repository.close();
     }
 
+    private void validateGitLogs(Git git, String... messages) throws 
GitAPIException {
+        Iterable<RevCommit> logs = git.log().call();
+        int count = 0;
+        for (RevCommit rev : logs) {
+            assertEquals(rev.getShortMessage(), messages[count]);
+            count++;
+        }
+        assertEquals(messages.length, count);
+    }
+
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
@@ -1092,6 +1115,9 @@ public class GitProducerTest extends GitTestSupport {
                 from("direct:commit-branch").to("git://" + gitLocalRepo + 
"?operation=commit&branchName=" + branchTest);
                 from("direct:commit-all").to("git://" + gitLocalRepo + 
"?operation=commit");
                 from("direct:commit-all-branch").to("git://" + gitLocalRepo + 
"?operation=commit&branchName=" + branchTest);
+                from("direct:add-status-commit").to("git://" + gitLocalRepo + 
"?operation=add").to("git://" + gitLocalRepo + "?operation=status").choice()
+                    
.when(simple("${body.hasUncommittedChanges()}")).log("Commiting 
changes...").to("git://" + gitLocalRepo + "?operation=commit").otherwise()
+                    .log("Nothing to commit").end();
                 from("direct:create-branch").to("git://" + gitLocalRepo + 
"?operation=createBranch&branchName=" + branchTest);
                 from("direct:delete-branch").to("git://" + gitLocalRepo + 
"?operation=deleteBranch&branchName=" + branchTest);
                 from("direct:status").to("git://" + gitLocalRepo + 
"?operation=status");

Reply via email to