diff --git a/scm-clients/scm-client-api/src/main/java/sonia/scm/client/RepositoryClientHandler.java b/scm-clients/scm-client-api/src/main/java/sonia/scm/client/RepositoryClientHandler.java index 914c243cb5..c1563b10b9 100644 --- a/scm-clients/scm-client-api/src/main/java/sonia/scm/client/RepositoryClientHandler.java +++ b/scm-clients/scm-client-api/src/main/java/sonia/scm/client/RepositoryClientHandler.java @@ -50,6 +50,18 @@ import java.util.Collection; public interface RepositoryClientHandler extends ClientHandler { + /** + * Method description + * + * + * @param type + * @param name + * + * @return + * @since 1.11 + */ + public Repository get(String type, String name); + /** * Method description * diff --git a/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyRepositoryClientHandler.java b/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyRepositoryClientHandler.java index 4d0efd2869..8d7666fbeb 100644 --- a/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyRepositoryClientHandler.java +++ b/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyRepositoryClientHandler.java @@ -69,6 +69,24 @@ public class JerseyRepositoryClientHandler //~--- get methods ---------------------------------------------------------- + /** + * Method description + * + * + * @param type + * @param name + * + * @return + */ + @Override + public Repository get(String type, String name) + { + String url = urlProvider.getRepositoryUrlProvider().getDetailUrl(type, + name); + + return getItemByUrl(url); + } + /** * Method description * diff --git a/scm-core/src/main/java/sonia/scm/url/RepositoryUrlProvider.java b/scm-core/src/main/java/sonia/scm/url/RepositoryUrlProvider.java index cb34869b96..205a255bfb 100644 --- a/scm-core/src/main/java/sonia/scm/url/RepositoryUrlProvider.java +++ b/scm-core/src/main/java/sonia/scm/url/RepositoryUrlProvider.java @@ -104,6 +104,18 @@ public interface RepositoryUrlProvider extends ModelUrlProvider public String getContentUrl(String repositoryId, String path, String revision); + /** + * Method description + * + * + * @param type + * @param name + * + * @return + * @since 1.11 + */ + public String getDetailUrl(String type, String name); + /** * Method description * diff --git a/scm-core/src/main/java/sonia/scm/url/RestRepositoryUrlProvider.java b/scm-core/src/main/java/sonia/scm/url/RestRepositoryUrlProvider.java index 862a7961a8..be7ac24cfd 100644 --- a/scm-core/src/main/java/sonia/scm/url/RestRepositoryUrlProvider.java +++ b/scm-core/src/main/java/sonia/scm/url/RestRepositoryUrlProvider.java @@ -197,6 +197,23 @@ public class RestRepositoryUrlProvider extends RestModelUrlProvider PARAMETER_REVISION, revision).toString(); } + /** + * Method description + * + * + * @param type + * @param name + * + * @return + * @since 1.11 + */ + @Override + public String getDetailUrl(String type, String name) + { + return new UrlBuilder(base).appendUrlPart(type).appendUrlPart( + name).toString(); + } + /** * Method description * diff --git a/scm-core/src/main/java/sonia/scm/url/WUIRepositoryUrlProvider.java b/scm-core/src/main/java/sonia/scm/url/WUIRepositoryUrlProvider.java index 1b08fd116b..9ce46b0e09 100644 --- a/scm-core/src/main/java/sonia/scm/url/WUIRepositoryUrlProvider.java +++ b/scm-core/src/main/java/sonia/scm/url/WUIRepositoryUrlProvider.java @@ -33,6 +33,10 @@ package sonia.scm.url; +//~--- non-JDK imports -------------------------------------------------------- + +import sonia.scm.util.HttpUtil; + /** * * @author Sebastian Sdorra @@ -51,6 +55,9 @@ public class WUIRepositoryUrlProvider extends WUIModelUrlProvider /** Field description */ public static final String COMPONENT_CONTENT = "contentPanel"; + /** Field description */ + public static final String COMPONENT_DETAIL = "repositoryPanel"; + /** Field description */ public static final String COMPONENT_DIFF = "diffPanel"; @@ -180,6 +187,24 @@ public class WUIRepositoryUrlProvider extends WUIModelUrlProvider VIEW_HISTORY).toString(); } + /** + * Method description + * + * + * @param type + * @param name + * + * @return + * @since 1.11 + */ + @Override + public String getDetailUrl(String type, String name) + { + name = name.concat(HttpUtil.SEPARATOR_PATH).concat(name); + + return new WUIUrlBuilder(baseUrl, COMPONENT_DETAIL).append(name).toString(); + } + /** * Method description *