/** * */ package org.gcube.accounting.analytics.persistence.couchbase; import java.util.Calendar; import java.util.List; import java.util.Map; import java.util.Observable; import java.util.Set; import org.gcube.accounting.analytics.Filter; import org.gcube.accounting.analytics.Info; import org.gcube.accounting.analytics.TemporalConstraint; import org.gcube.accounting.analytics.persistence.AccountingPersistenceBackendQuery; import org.gcube.accounting.analytics.persistence.AccountingPersistenceBackendQueryConfiguration; import org.gcube.documentstore.records.AggregatedRecord; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.couchbase.client.java.Bucket; 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; import com.couchbase.client.java.query.N1qlQueryResult; import com.couchbase.client.java.query.N1qlQueryRow; import com.couchbase.client.java.query.Select; /** * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ * */ public class AccountingPersistenceQueryCouchBase extends AccountingPersistenceBackendQuery { private static final Logger logger = LoggerFactory.getLogger(AccountingPersistenceQueryCouchBase.class); public static final String URL_PROPERTY_KEY = "URL"; //public static final String USERNAME_PROPERTY_KEY = "username"; public static final String PASSWORD_PROPERTY_KEY = "password"; public static final String BUCKET_NAME_PROPERTY_KEY = "bucketName"; /* The environment configuration */ protected static final CouchbaseEnvironment ENV = DefaultCouchbaseEnvironment.builder() .queryEnabled(true) .build(); protected Cluster cluster; protected Bucket bucket; protected String bucketName; /** * {@inheritDoc} */ @Override protected void prepareConnection(AccountingPersistenceBackendQueryConfiguration configuration) throws Exception { String url = configuration.getProperty(URL_PROPERTY_KEY); // String username = configuration.getProperty(USERNAME_PROPERTY_KEY); String password = configuration.getProperty(PASSWORD_PROPERTY_KEY); cluster = CouchbaseCluster.create(ENV, url); bucketName = configuration.getProperty(BUCKET_NAME_PROPERTY_KEY); bucket = cluster.openBucket(bucketName, password); } /** * {@inheritDoc} */ @Override public void close() throws Exception { cluster.disconnect(); } /** * {@inheritDoc} */ @Override protected Map reallyQuery( @SuppressWarnings("rawtypes") Class recordClass, TemporalConstraint temporalConstraint, List filters) throws Exception { N1qlQueryResult result = bucket.query(Select.select("*").from(bucketName).limit(10)); List rows = result.allRows(); for(N1qlQueryRow row : rows){ logger.debug(row.toString()); } return null; } /** * {@inheritDoc} */ @Override public Set getKeys(Class recordClass) throws Exception { // TODO Auto-generated method stub return null; } /** * {@inheritDoc} */ @Override public Set getPossibleValuesForKey( Class recordClass, String key) throws Exception { // TODO Auto-generated method stub return null; } }