Commit b70e6b96 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

implement datastore and messagedigest providers

parent b90db2cc
......@@ -2,13 +2,12 @@ package com.telephoners.krakyournet.ctf.modules;
import com.google.inject.AbstractModule;
import com.google.inject.name.Names;
import com.mongodb.MongoClient;
import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration;
import com.telephoners.krakyournet.ctf.providers.DatastoreProvider;
import com.telephoners.krakyournet.ctf.providers.MessageDigestProvider;
import org.mongodb.morphia.Datastore;
import org.mongodb.morphia.Morphia;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class ApplicationModule extends AbstractModule
{
......@@ -23,19 +22,9 @@ public class ApplicationModule extends AbstractModule
@Override
protected void configure()
{
bind(ApplicationConfiguration.class).toInstance(applicationConfiguration); //todo: refactor
Morphia morphia = new Morphia();
//todo: instantiate somewhere else?
Datastore datastore = morphia.createDatastore(
new MongoClient(applicationConfiguration.getDbHost(), applicationConfiguration.getDbPort()), applicationConfiguration.getDbName());
datastore.ensureIndexes();
bind(Datastore.class).toInstance(datastore);
try {
bind(MessageDigest.class).annotatedWith(Names.named("messageDigest"))
.toInstance(MessageDigest.getInstance(applicationConfiguration.getFlagHashMethod()));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
bind(ApplicationConfiguration.class).toInstance(applicationConfiguration);
bind(Datastore.class).toInstance(new DatastoreProvider(applicationConfiguration).getDatastore());
bind(MessageDigest.class).annotatedWith(Names.named("messageDigest"))
.toInstance(new MessageDigestProvider(applicationConfiguration).getMessageDigest());
}
}
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 javax.inject.Inject;
public class DatastoreProvider
{
private ApplicationConfiguration applicationConfiguration;
@Inject
public DatastoreProvider(ApplicationConfiguration applicationConfiguration)
{
this.applicationConfiguration = applicationConfiguration;
}
public Datastore getDatastore()
{
Morphia morphia = new Morphia();
Datastore datastore = morphia.createDatastore(
new MongoClient(applicationConfiguration.getDbHost(), applicationConfiguration.getDbPort()), applicationConfiguration.getDbName());
datastore.ensureIndexes();
return datastore;
}
}
package com.telephoners.krakyournet.ctf.providers;
import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MessageDigestProvider
{
private ApplicationConfiguration applicationConfiguration;
public MessageDigestProvider(ApplicationConfiguration applicationConfiguration)
{
this.applicationConfiguration = applicationConfiguration;
}
public MessageDigest getMessageDigest()
{
try {
return MessageDigest.getInstance(applicationConfiguration.getFlagHashMethod());
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
}
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