mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-10 07:25:44 +01:00
added getTags method to client api
This commit is contained in:
@@ -38,6 +38,7 @@ package sonia.scm.client;
|
||||
import sonia.scm.NotSupportedFeatuerException;
|
||||
import sonia.scm.Type;
|
||||
import sonia.scm.repository.Repository;
|
||||
import sonia.scm.repository.Tags;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
@@ -97,4 +98,15 @@ public interface RepositoryClientHandler extends ClientHandler<Repository>
|
||||
* @return
|
||||
*/
|
||||
public Collection<Type> getRepositoryTypes();
|
||||
|
||||
/**
|
||||
* Returns all tags of the given repository.
|
||||
*
|
||||
*
|
||||
* @param repository repository
|
||||
*
|
||||
* @return all tags of the given repository
|
||||
* @since 1.18
|
||||
*/
|
||||
public Tags getTags(Repository repository);
|
||||
}
|
||||
|
||||
@@ -37,12 +37,15 @@ package sonia.scm.client;
|
||||
|
||||
import sonia.scm.NotSupportedFeatuerException;
|
||||
import sonia.scm.Type;
|
||||
import sonia.scm.repository.Changeset;
|
||||
import sonia.scm.repository.Repository;
|
||||
import sonia.scm.repository.Tags;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
import com.sun.jersey.api.client.ClientResponse;
|
||||
import com.sun.jersey.api.client.GenericType;
|
||||
import com.sun.jersey.api.client.WebResource;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -52,8 +55,7 @@ import java.util.List;
|
||||
* @author Sebastian Sdorra
|
||||
*/
|
||||
public class JerseyRepositoryClientHandler
|
||||
extends AbstractClientHandler<Repository>
|
||||
implements RepositoryClientHandler
|
||||
extends AbstractClientHandler<Repository> implements RepositoryClientHandler
|
||||
{
|
||||
|
||||
/**
|
||||
@@ -132,6 +134,41 @@ public class JerseyRepositoryClientHandler
|
||||
return session.getState().getRepositoryTypes();
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param repository
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Tags getTags(Repository repository)
|
||||
{
|
||||
Tags tags = null;
|
||||
String url = session.getUrlProvider().getRepositoryUrlProvider().getTagsUrl(
|
||||
repository.getId());
|
||||
WebResource resource = session.getClient().resource(url);
|
||||
ClientResponse response = null;
|
||||
|
||||
try
|
||||
{
|
||||
response = resource.get(ClientResponse.class);
|
||||
|
||||
if (response.getStatus() != ScmClientException.SC_NOTFOUND)
|
||||
{
|
||||
ClientUtil.checkResponse(response, 200);
|
||||
tags = response.getEntity(Tags.class);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ClientUtil.close(response);
|
||||
}
|
||||
|
||||
return tags;
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user