MongoClientProvider

Definimos esta clase que contendrá la conexión a Mongodb

import com.avbravo.avbravoutils.JsfUtil;
import com.mongodb.MongoClient;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.ejb.ConcurrencyManagement;
import javax.ejb.ConcurrencyManagementType;
import javax.ejb.Lock;
import javax.ejb.LockType;
import javax.ejb.Singleton;

/**
 *
 * @author avbravo
 */
@Singleton
@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)

public class MongoClientProvider {

    private static final Logger LOG = Logger.getLogger(MongoClientProvider.class.getName());

    private MongoClient mongoClient = null;

    @Lock(LockType.READ)
    public MongoClient getMongoClient() {

        if(mongoClient == null){
          init();
        }
        return mongoClient;
    }

    @PostConstruct
    public void init() {
        try {
            /*
          String database="";
          String username="";
          String password="";
          String host="localhost";
          String port="27017";
          char[] charArray = password.toCharArray();
          MongoCredential credential = MongoCredential.createCredential(username, database, charArray);
           mongoClient = new MongoClient(new ServerAddress(host,port), Arrays.asList(credential));
             */
            mongoClient = new MongoClient();
        } catch (Exception e) {
          JsfUtil.addErrorMessage("init() " + e.getLocalizedMessage());
          LOG.warning("MongoClientProvider init() "+e.getLocalizedMessage());
        }

    }
}

Last updated