package ca.uhn.fhirtest;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean;
import ca.uhn.fhir.context.FhirContext;
public class FhirContextFactory implements FactoryBean<FhirContext>, InitializingBean {
private int myConnectionRequestTimeout = 5000;
private int mySocketTimeout = 10000;
private int myConnectTimeout = 4000;
public int getConnectionRequestTimeout() {
return myConnectionRequestTimeout;
}
public void setConnectionRequestTimeout(int theConnectionRequestTimeout) {
myConnectionRequestTimeout = theConnectionRequestTimeout;
}
public int getSocketTimeout() {
return mySocketTimeout;
}
public void setSocketTimeout(int theSocketTimeout) {
mySocketTimeout = theSocketTimeout;
}
public int getConnectTimeout() {
return myConnectTimeout;
}
public void setConnectTimeout(int theConnectTimeout) {
myConnectTimeout = theConnectTimeout;
}
private FhirContext myCtx;
public FhirContextFactory() {
}
@Override
public FhirContext getObject() throws Exception {
return myCtx;
}
@Override
public Class<FhirContext> getObjectType() {
return FhirContext.class;
}
@Override
public boolean isSingleton() {
return true;
}
@Override
public void afterPropertiesSet() throws Exception {
myCtx = new FhirContext();
myCtx.getRestfulClientFactory().setConnectTimeout(myConnectTimeout);
myCtx.getRestfulClientFactory().setSocketTimeout(mySocketTimeout);
myCtx.getRestfulClientFactory().setConnectionRequestTimeout(myConnectionRequestTimeout);
}
}