package microservices.sample; import com.squareup.okhttp.OkHttpClient; import retrofit.RestAdapter; import retrofit.client.OkClient; /** * @author mamad * @since 18/03/15. */ public class ServiceBuilder<S> { private final Class<S> serviceClass; public ServiceBuilder(Class<S> serviceClass) { this.serviceClass = serviceClass; } public static <S> ServiceBuilder<S> create(Class<S> serviceClass) { return new ServiceBuilder<>(serviceClass); } public S build(String ip, int port) { return build(String.format("http://%s:%d", ip, port)); } public S build(String url) { RestAdapter restAdapter = new RestAdapter.Builder() .setEndpoint(url) .setClient(new OkClient(new OkHttpClient())) .build(); return restAdapter.create(serviceClass); } }