All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.comhix.twitch.database.config.DatabaseModule Maven / Gradle / Ivy

package de.comhix.twitch.database.config;

import com.google.inject.AbstractModule;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import org.mongodb.morphia.Datastore;
import org.mongodb.morphia.Morphia;

import static com.google.common.collect.Lists.newArrayList;

/**
 * @author Benjamin Beeker
 */
public class DatabaseModule extends AbstractModule {
    private final String host;
    private final int port;
    private final String dbName;
    private final String user;
    private final String password;

    public DatabaseModule(String host, int port, String dbName) {
        this(host, port, dbName, null, null);
    }

    public DatabaseModule(String host, int port, String dbName, String user, String password) {
        this.host = host;
        this.port = port;
        this.dbName = dbName;
        this.user = user;
        this.password = password;
    }

    @Override
    protected void configure() {
        MongoCredential credential = MongoCredential.createCredential(user, "admin", password.toCharArray());
        MongoClient mongo = new MongoClient(new ServerAddress(host, port), newArrayList(credential));
        Datastore datastore = new Morphia().createDatastore(mongo, dbName);
        bind(Datastore.class).toInstance(datastore);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy