Commit dacaaf6c authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

initial version of couchdb integration

parent 43e17aad
package com.telephoners.krakyournet.ctf.providers; package com.telephoners.krakyournet.ctf.providers;
import com.mongodb.MongoClient;
import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration; import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration;
import org.mongodb.morphia.Datastore; import org.ektorp.CouchDbConnector;
import org.mongodb.morphia.Morphia; 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 javax.inject.Inject;
import java.net.MalformedURLException;
//todo: move to module @Provides
public class DatastoreProvider public class DatastoreProvider
{ {
private final ApplicationConfiguration applicationConfiguration; private final ApplicationConfiguration applicationConfiguration;
...@@ -17,12 +22,18 @@ public class DatastoreProvider ...@@ -17,12 +22,18 @@ public class DatastoreProvider
this.applicationConfiguration = applicationConfiguration; this.applicationConfiguration = applicationConfiguration;
} }
public Datastore getDatastore() public CouchDbConnector getDatastore() throws MalformedURLException
{ {
Morphia morphia = new Morphia(); final HttpClient httpClient = new StdHttpClient.Builder()
Datastore datastore = morphia.createDatastore( .url("http://localhost:5984") //todo: to configuartion
new MongoClient(applicationConfiguration.getDbHost(), applicationConfiguration.getDbPort()), applicationConfiguration.getDbName()); .build();
datastore.ensureIndexes();
final CouchDbInstance dbInstance = new StdCouchDbInstance(httpClient);
CouchDbConnector datastore = new StdCouchDbConnector("mydatabase", dbInstance); //todo: to configuration
//todo: if setup enabled
datastore.createDatabaseIfNotExists();
return datastore; 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