Commit dacaaf6c authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

initial version of couchdb integration

parent 43e17aad
package com.telephoners.krakyournet.ctf.providers;
import com.mongodb.MongoClient;
import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration;
import org.mongodb.morphia.Datastore;
import org.mongodb.morphia.Morphia;
import org.ektorp.CouchDbConnector;
import org.ektorp.CouchDbInstance;
import org.ektorp.http.HttpClient;
import org.ektorp.http.StdHttpClient;
import org.ektorp.impl.StdCouchDbConnector;
import org.ektorp.impl.StdCouchDbInstance;
import javax.inject.Inject;
import java.net.MalformedURLException;
//todo: move to module @Provides
public class DatastoreProvider
{
private final ApplicationConfiguration applicationConfiguration;
......@@ -17,12 +22,18 @@ public class DatastoreProvider
this.applicationConfiguration = applicationConfiguration;
}
public Datastore getDatastore()
public CouchDbConnector getDatastore() throws MalformedURLException
{
Morphia morphia = new Morphia();
Datastore datastore = morphia.createDatastore(
new MongoClient(applicationConfiguration.getDbHost(), applicationConfiguration.getDbPort()), applicationConfiguration.getDbName());
datastore.ensureIndexes();
final HttpClient httpClient = new StdHttpClient.Builder()
.url("http://localhost:5984") //todo: to configuartion
.build();
final CouchDbInstance dbInstance = new StdCouchDbInstance(httpClient);
CouchDbConnector datastore = new StdCouchDbConnector("mydatabase", dbInstance); //todo: to configuration
//todo: if setup enabled
datastore.createDatabaseIfNotExists();
return datastore;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment