Repository: camel Updated Branches: refs/heads/camel-2.17.x a298774f5 -> 5fe728189
CAMEL-10145: Camel-Git: Pull and Push operations require the remote Name and not the remote Path to git repository Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/5fe72818 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5fe72818 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5fe72818 Branch: refs/heads/camel-2.17.x Commit: 5fe7281899392f4caa29ea89c8b7bc4f982f7342 Parents: a298774 Author: Andrea Cosentino <anco...@gmail.com> Authored: Thu Jul 14 10:46:43 2016 +0200 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Thu Jul 14 10:49:54 2016 +0200 ---------------------------------------------------------------------- .../org/apache/camel/component/git/GitEndpoint.java | 14 ++++++++++++++ .../camel/component/git/producer/GitProducer.java | 16 ++++++++-------- .../component/git/producer/GitProducerTest.java | 12 ++++++++++++ 3 files changed, 34 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/5fe72818/components/camel-git/src/main/java/org/apache/camel/component/git/GitEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-git/src/main/java/org/apache/camel/component/git/GitEndpoint.java b/components/camel-git/src/main/java/org/apache/camel/component/git/GitEndpoint.java index 71f2ab0..d25dbb2 100644 --- a/components/camel-git/src/main/java/org/apache/camel/component/git/GitEndpoint.java +++ b/components/camel-git/src/main/java/org/apache/camel/component/git/GitEndpoint.java @@ -57,6 +57,9 @@ public class GitEndpoint extends DefaultEndpoint { @UriParam private String remotePath; + + @UriParam + private String remoteName; @UriParam(enums = "clone,init,add,remove,commit,commitAll,createBranch,deleteBranch,createTag,deleteTag,status,log,push,pull,showBranches,cherryPick", label = "producer") private String operation; @@ -175,5 +178,16 @@ public class GitEndpoint extends DefaultEndpoint { public void setTagName(String tagName) { this.tagName = tagName; } + + /** + * The remote repository name to use in particular operation like pull + */ + public String getRemoteName() { + return remoteName; + } + + public void setRemoteName(String remoteName) { + this.remoteName = remoteName; + } } http://git-wip-us.apache.org/repos/asf/camel/blob/5fe72818/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 5c16ef3..be7ef1d 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 @@ -346,17 +346,17 @@ public class GitProducer extends DefaultProducer { protected void doPush(Exchange exchange, String operation) throws Exception { Iterable<PushResult> result = null; try { - if (ObjectHelper.isEmpty(endpoint.getRemotePath())) { - throw new IllegalArgumentException("Remote path must be specified to execute " + operation); + if (ObjectHelper.isEmpty(endpoint.getRemoteName())) { + throw new IllegalArgumentException("Remote name must be specified to execute " + operation); } if (ObjectHelper.isNotEmpty(endpoint.getBranchName())) { git.checkout().setCreateBranch(false).setName(endpoint.getBranchName()).call(); } if (ObjectHelper.isNotEmpty(endpoint.getUsername()) && ObjectHelper.isNotEmpty(endpoint.getPassword())) { UsernamePasswordCredentialsProvider credentials = new UsernamePasswordCredentialsProvider(endpoint.getUsername(), endpoint.getPassword()); - result = git.push().setCredentialsProvider(credentials).setRemote(endpoint.getRemotePath()).call(); + result = git.push().setCredentialsProvider(credentials).setRemote(endpoint.getRemoteName()).call(); } else { - result = git.push().setRemote(endpoint.getRemotePath()).call(); + result = git.push().setRemote(endpoint.getRemoteName()).call(); } } catch (Exception e) { LOG.error("There was an error in Git " + operation + " operation"); @@ -368,17 +368,17 @@ public class GitProducer extends DefaultProducer { protected void doPull(Exchange exchange, String operation) throws Exception { PullResult result = null; try { - if (ObjectHelper.isEmpty(endpoint.getRemotePath())) { - throw new IllegalArgumentException("Remote path must be specified to execute " + operation); + if (ObjectHelper.isEmpty(endpoint.getRemoteName())) { + throw new IllegalArgumentException("Remote name must be specified to execute " + operation); } if (ObjectHelper.isNotEmpty(endpoint.getBranchName())) { git.checkout().setCreateBranch(false).setName(endpoint.getBranchName()).call(); } if (ObjectHelper.isNotEmpty(endpoint.getUsername()) && ObjectHelper.isNotEmpty(endpoint.getPassword())) { UsernamePasswordCredentialsProvider credentials = new UsernamePasswordCredentialsProvider(endpoint.getUsername(), endpoint.getPassword()); - result = git.pull().setCredentialsProvider(credentials).setRemote(endpoint.getRemotePath()).call(); + result = git.pull().setCredentialsProvider(credentials).setRemote(endpoint.getRemoteName()).call(); } else { - result = git.pull().setRemote(endpoint.getRemotePath()).call(); + result = git.pull().setRemote(endpoint.getRemoteName()).call(); } } catch (Exception e) { LOG.error("There was an error in Git " + operation + " operation"); http://git-wip-us.apache.org/repos/asf/camel/blob/5fe72818/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 a9000df..6dc66ed 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 @@ -27,6 +27,7 @@ import org.apache.camel.component.git.GitConstants; import org.apache.camel.component.git.GitTestSupport; 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.lib.Ref; import org.eclipse.jgit.lib.Repository; @@ -58,6 +59,15 @@ public class GitProducerTest extends GitTestSupport { } @Test + public void pullTest() throws Exception { + template.sendBody("direct:clone", ""); + File gitDir = new File(gitLocalRepo, ".git"); + assertEquals(gitDir.exists(), true); + PullResult pr = template.requestBody("direct:pull", "", PullResult.class); + assertTrue(pr.isSuccessful()); + } + + @Test public void addTest() throws Exception { Repository repository = getTestRepository(); @@ -1096,6 +1106,8 @@ public class GitProducerTest extends GitTestSupport { .to("git://" + gitLocalRepo + "?operation=cherryPick&branchName=" + branchTest); from("direct:cherrypick-master") .to("git://" + gitLocalRepo + "?operation=cherryPick&branchName=refs/heads/master"); + from("direct:pull") + .to("git://" + gitLocalRepo + "?remoteName=origin&operation=pull"); } }; }