public WebResource.Builder uri( final String uri ) { return getClient() .resource( resolvePath( uri ) ) .getRequestBuilder(); }
public WebResource.Builder uri( final String uri, final MultivaluedMap<String, String> queryParameters ) { return getClient() .resource( resolvePath( uri ) ) .queryParams( queryParameters ) .getRequestBuilder(); }
public WebResource.Builder serviceResource( final String uri ) { return getClient() .resource( resolveServicePath( uri ) ) .type( getMediaType() ) .accept( getMediaType() ); }
public WebResource.Builder serviceResource( final String uri, final MultivaluedMap<String, String> queryParameters ) { return getClient() .resource( resolveServicePath( uri ) ) .queryParams( queryParameters ) .type( getMediaType() ) .accept( getMediaType() ); }
private String getLocationOfMetadata(final String url, final MetadataType metadataType) { final ClientResponse clientResponse = getNexusClient().getClient() .resource(url + "repodata/repomd.xml") .get(ClientResponse.class); try { if (clientResponse.getStatus() < 300) { final RepoMD repomd = new RepoMD(clientResponse.getEntityInputStream()); return repomd.getLocation(metadataType.getType()); } throw getNexusClient().convert(new UniformInterfaceException(clientResponse)); } finally { clientResponse.close(); } }
@Override public <T> T getMetadata(final String repositoryId, final MetadataType metadataType, final Class<T> returnType) throws IOException { try { final String url = ensureUrlEndsWithSlash(repositoryId); final String location = getLocationOfMetadata(url, metadataType); if (location != null) { return handleResponse( getNexusClient().getClient().resource(url + location).get(ClientResponse.class), returnType, metadataType.getCompression() ); } throw new NexusClientNotFoundException( "Could not find metadata type '" + metadataType.getType() + "'", null ); } catch (UniformInterfaceException e) { throw getNexusClient().convert(e); } catch (ClientHandlerException e) { throw getNexusClient().convert(e); } }
@Override public <T> T getMetadata(final String repositoryId, final String version, final MetadataType metadataType, final Class<T> returnType) throws IOException { try { final String url = getNexusClient().resolveServicePath("yum/repos/" + repositoryId + "/" + version + "/"); final String location = getLocationOfMetadata(url, metadataType); if (location != null) { return handleResponse( getNexusClient().getClient().resource(url + location).get(ClientResponse.class), returnType, metadataType.getCompression() ); } throw new NexusClientNotFoundException( "Could not find metadata type '" + metadataType.getType() + "'", null ); } catch (UniformInterfaceException e) { throw getNexusClient().convert(e); } catch (ClientHandlerException e) { throw getNexusClient().convert(e); } }