package com.bls.client.opendata;
import javax.validation.Valid;
import javax.ws.rs.client.Client;
import org.hibernate.validator.constraints.NotEmpty;
import org.hibernate.validator.constraints.URL;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.dropwizard.client.JerseyClientBuilder;
import io.dropwizard.client.JerseyClientConfiguration;
import io.dropwizard.configuration.ConfigurationException;
import io.dropwizard.setup.Environment;
public class OpenDataClientConfiguration {
@Valid
private final JerseyClientConfiguration httpClient;
@Valid
@URL
@NotEmpty
private final String url;
@JsonCreator
protected OpenDataClientConfiguration(@JsonProperty("httpClient") final JerseyClientConfiguration httpClient,
@JsonProperty("url") final String url) {
this.httpClient = httpClient;
this.url = url;
}
public Client getJerseyClientConfiguration(final Environment environment) {
return new JerseyClientBuilder(environment) //
.using(httpClient != null ? httpClient : new JerseyClientConfiguration()) //
.build(url);
}
public String getUrl() throws ConfigurationException {
return url;
}
}