package fr.openwide.core.rest.jersey2.client; import java.net.URI; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.UriBuilder; import org.glassfish.jersey.media.multipart.MultiPartFeature; import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; public abstract class AbstractRestClientServiceImpl { private final URI targetUri; protected AbstractRestClientServiceImpl(String schemeAndHost, int port, String path) { this( UriBuilder.fromUri(schemeAndHost) .port(port) .path(path) .build() ); } protected AbstractRestClientServiceImpl(URI remoteServiceUri) { this.targetUri = remoteServiceUri; } protected Client createJerseyClient() { return ClientBuilder.newBuilder() .register(MultiPartFeature.class) .register(JacksonJsonProvider.class) .build(); } protected URI getTargetUri() { return targetUri; } protected WebTarget getTarget() { return createJerseyClient().target(targetUri); } }