From 0859191fef135a57458f1efe6757499487a86880 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Tue, 15 Nov 2011 21:44:29 +0100 Subject: [PATCH] added revision parameter to changeset client api --- .../scm/client/ClientChangesetHandler.java | 6 +++-- .../java/sonia/scm/client/ScmUrlProvider.java | 22 ++++++++++++++----- .../client/JerseyClientChangesetHandler.java | 10 ++++++--- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/scm-clients/scm-client-api/src/main/java/sonia/scm/client/ClientChangesetHandler.java b/scm-clients/scm-client-api/src/main/java/sonia/scm/client/ClientChangesetHandler.java index f77c3ba532..ea858cca97 100644 --- a/scm-clients/scm-client-api/src/main/java/sonia/scm/client/ClientChangesetHandler.java +++ b/scm-clients/scm-client-api/src/main/java/sonia/scm/client/ClientChangesetHandler.java @@ -55,12 +55,14 @@ public interface ClientChangesetHandler * @return */ public ChangesetPagingResult getChangesets(int start, int limit); - + /** * @param path + * @param revision * @param start * @param limit * @return */ - public ChangesetPagingResult getChangesets(String path, int start, int limit); + public ChangesetPagingResult getChangesets(String path, String revision, + int start, int limit); } diff --git a/scm-clients/scm-client-api/src/main/java/sonia/scm/client/ScmUrlProvider.java b/scm-clients/scm-client-api/src/main/java/sonia/scm/client/ScmUrlProvider.java index b79f958808..11b226f11e 100644 --- a/scm-clients/scm-client-api/src/main/java/sonia/scm/client/ScmUrlProvider.java +++ b/scm-clients/scm-client-api/src/main/java/sonia/scm/client/ScmUrlProvider.java @@ -248,12 +248,13 @@ public class ScmUrlProvider * @since 1.8 * * @param path + * @param revision * @param start * @param limit * @return */ - public String getRepositoryChangesetUrl(String repositoryId, String path, int start, - int limit) + public String getRepositoryChangesetUrl(String repositoryId, String path, + String revision, int start, int limit) { String url = MessageFormat.format(getResourceUrl(URLPATTERN_CHANGESETS), repositoryId); @@ -268,10 +269,19 @@ public class ScmUrlProvider if (limit > 0) { url = url.concat(s).concat("limit=").concat(String.valueOf(limit)); + s = "&"; } - - if (path != null) { + + if (path != null) + { url = url.concat(s).concat("path=").concat(path); + s = "&"; + } + + if (revision != null) + { + url = url.concat(s).concat("revision=").concat(revision); + s = "&"; } return url; @@ -291,9 +301,9 @@ public class ScmUrlProvider public String getRepositoryChangesetUrl(String repositoryId, int start, int limit) { - return getRepositoryChangesetUrl(repositoryId, null, start, limit); + return getRepositoryChangesetUrl(repositoryId, null, null, start, limit); } - + /** * Method description * diff --git a/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyClientChangesetHandler.java b/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyClientChangesetHandler.java index d41328d411..f9f7e8beaa 100644 --- a/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyClientChangesetHandler.java +++ b/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyClientChangesetHandler.java @@ -107,18 +107,22 @@ public class JerseyClientChangesetHandler implements ClientChangesetHandler * Method description * * + * + * @param path + * @param revision * @param start * @param limit * * @return */ @Override - public ChangesetPagingResult getChangesets(String path, int start, int limit) + public ChangesetPagingResult getChangesets(String path, String revision, + int start, int limit) { ChangesetPagingResult result = null; String url = session.getUrlProvider().getRepositoryChangesetUrl(repository.getId(), - start, limit); + path, revision, start, limit); WebResource resource = session.getClient().resource(url); ClientResponse response = null; @@ -139,7 +143,7 @@ public class JerseyClientChangesetHandler implements ClientChangesetHandler return result; } - + //~--- fields --------------------------------------------------------------- /** Field description */