package fr.openwide.core.rest.jersey.client;
import java.net.URI;
import javax.ws.rs.core.UriBuilder;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider;
public abstract class AbstractRestClientServiceImpl {
private String urlSchemeHost = "http://localhost";
private int urlPort = 8080;
private String contextPath;
private String restServletPath;
protected AbstractRestClientServiceImpl(String urlSchemeHost, int urlPort, String contextPath,
String restServletPath) {
this.urlSchemeHost = urlSchemeHost;
this.urlPort = urlPort;
this.contextPath = contextPath;
this.restServletPath = restServletPath;
}
protected Client createJerseyClient() {
ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getClasses().add(MimeMultipartProvider.class);
clientConfig.getClasses().add(JacksonJsonProvider.class);
return Client.create(clientConfig);
}
protected String getServiceUrl(String path, Object... parameters) {
URI uri = UriBuilder.fromUri(urlSchemeHost)
.port(urlPort)
.path(contextPath)
.path(restServletPath)
.path(String.format(path, parameters)).build();
return uri.toString();
}
}