Package su.lafayette.udptracker

Source Code of su.lafayette.udptracker.Datastore

package su.lafayette.udptracker;

import com.google.code.morphia.Morphia;
import com.mongodb.*;
import org.apache.log4j.Logger;
import su.lafayette.udptracker.models.Peer;

public class Datastore {
  private static final Logger logger = Logger.getLogger(Server.class);

  private static Mongo mongo;
  private static Morphia morphia;
  private static volatile com.google.code.morphia.Datastore datastore;

  public static com.google.code.morphia.Datastore instance() throws Exception {
    if (datastore == null) {
      synchronized (Datastore.class) {
        if (datastore == null) {
          morphia = new Morphia();
          morphia.map(Peer.class);

          String host = Config.getInstance().getString("database.host", "127.0.0.1");
          Integer port = Config.getInstance().getInt("database.port", 27017);

          mongo = new Mongo(host, port);
          datastore = morphia.createDatastore(mongo, "udptracker");

          logger.info("Connected to MongoDB on " + host + ":" + port);
        }
      }
    }

    return datastore;
  }

  public static Mongo getMongo() {
    return mongo;
  }

  public static Morphia getMorphia() {
    return morphia;
  }

  private Datastore() { }
}
TOP

Related Classes of su.lafayette.udptracker.Datastore

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.