La clase CouchbaseClientProvider se utiliza para definir los datos de conexión a la base de datos Couchbase que se utilizara.
Existen dos definiciones de clases dependiendo del contexto donde se utilicen.
Nota: Por razones de seguridad es recomendable habilitar la seguridad de mongodb indicar el usuario y password.
Copy import com.couchbase.client.java.Cluster;
import com.couchbase.client.java.CouchbaseCluster;
import com.couchbase.client.java.env.CouchbaseEnvironment;
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
/**
*
* @author avbravo
*/
public class CouchbaseClientProvider {
private Cluster cluster;
public Cluster getCluster() {
CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder()
.connectTimeout(10000) //10000ms = 10s, default is 5s
.build();
cluster = CouchbaseCluster.create("localhost");
return cluster;
}
}
Para aplicaciones empresariales Java que utilizan el estándar Java Enterprise Edition, generalmente usadas en aplicaciones web, definimos la clase. Esto permite que la comunicación con la base de datos no sea necesario definir JNDI.
Copy import javax.annotation.PostConstruct;
import javax.ejb.ConcurrencyManagement;
import javax.ejb.ConcurrencyManagementType;
import javax.ejb.Lock;
import javax.ejb.LockType;
import javax.ejb.Singleton;
import com.couchbase.client.java.Cluster;
import com.couchbase.client.java.CouchbaseCluster;
import com.couchbase.client.java.env.CouchbaseEnvironment;
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
@Singleton
@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)
public class CouchbaseClientProvider {
private Cluster cluster = null;
@Lock(LockType.READ)
public Cluster getCluster(){
return cluster;
}
@PostConstruct
public void init() {
try {
CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder()
.connectTimeout(10000) //10000ms = 10s, default is 5s
.build();
cluster = CouchbaseCluster.create("localhost");
} catch (Exception e) {
JSFUtil.addErrorMessage("init() "+e.getLocalizedMessage());
}
}
}