com.lordofthejars.nosqlunit.couchdb.CouchDbConnectorFactory Maven / Gradle / Ivy
package com.lordofthejars.nosqlunit.couchdb;
import java.net.MalformedURLException;
import org.ektorp.CouchDbConnector;
import org.ektorp.CouchDbInstance;
import org.ektorp.http.StdHttpClient;
import org.ektorp.impl.StdCouchDbInstance;
public class CouchDbConnectorFactory {
public static CouchDbConnector couchDbConnector(CouchDbConfiguration configuration) {
if(!configuration.isDatabaseNameSet()) {
throw new IllegalArgumentException("Database name should be provided.");
}
StdHttpClient.Builder httpBuilder = couchDbHttpClient(configuration);
return couchDbConnector(configuration, httpBuilder);
}
private static CouchDbConnector couchDbConnector(CouchDbConfiguration configuration,
StdHttpClient.Builder httpBuilder) {
CouchDbInstance dbInstance = new StdCouchDbInstance(httpBuilder.build());
return dbInstance.createConnector(configuration.getDatabaseName(), true);
}
private static StdHttpClient.Builder couchDbHttpClient(CouchDbConfiguration configuration) {
StdHttpClient.Builder httpBuilder = new StdHttpClient.Builder();
try {
httpBuilder.url(configuration.getUrl()).caching(configuration.isCaching())
.enableSSL(configuration.isEnableSsl()).relaxedSSLSettings(configuration.isRelaxedSsl());
} catch (MalformedURLException e) {
throw new IllegalArgumentException(e);
}
if(configuration.isUsernameSet()) {
httpBuilder.username(configuration.getUsername());
}
if(configuration.isPasswordSet()) {
httpBuilder.password(configuration.getPassword());
}
if(configuration.isSslServerSocketSet()) {
httpBuilder.sslSocketFactory(configuration.getSslSocketFactory());
}
return httpBuilder;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy