added getTags method to client api

This commit is contained in:
Sebastian Sdorra
2012-07-05 19:44:26 +02:00
parent b0e0f76c09
commit 1671124827
2 changed files with 56 additions and 7 deletions

View File

@@ -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);
}

View File

@@ -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 --------------------------------------------------------------
/**