git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-publishing/document-store-lib-couchbase@129511 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
1571c06111
commit
5ab1d06365
|
@ -7,8 +7,6 @@ import java.io.Serializable;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.documentstore.persistence.PersistenceBackend;
|
||||
import org.gcube.documentstore.persistence.PersistenceBackendConfiguration;
|
||||
import org.gcube.documentstore.records.Record;
|
||||
import org.gcube.documentstore.records.RecordUtility;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -23,7 +21,6 @@ import com.couchbase.client.java.document.JsonDocument;
|
|||
import com.couchbase.client.java.document.json.JsonObject;
|
||||
import com.couchbase.client.java.env.CouchbaseEnvironment;
|
||||
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
|
||||
import com.couchbase.client.java.query.N1qlQueryResult;
|
||||
|
||||
/**
|
||||
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
|
||||
|
@ -31,6 +28,10 @@ import com.couchbase.client.java.query.N1qlQueryResult;
|
|||
*/
|
||||
public class PersistenceCouchBase extends PersistenceBackend {
|
||||
|
||||
|
||||
private static final Logger logger = LoggerFactory
|
||||
.getLogger(PersistenceCouchBase.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";
|
||||
|
@ -52,8 +53,6 @@ public class PersistenceCouchBase extends PersistenceBackend {
|
|||
public static final String BUCKET_TASK_NAME_PROPERTY_KEY="AggregatedTaskUsageRecord";
|
||||
public static final String BUCKET_TASK_TYPE="TaskUsageRecord";
|
||||
|
||||
private static final Logger logger = LoggerFactory
|
||||
.getLogger(PersistenceCouchBase.class);
|
||||
|
||||
/* The environment configuration */
|
||||
protected static final CouchbaseEnvironment ENV =
|
||||
|
@ -94,14 +93,12 @@ public class PersistenceCouchBase extends PersistenceBackend {
|
|||
@Override
|
||||
protected void prepareConnection(PersistenceBackendConfiguration configuration) throws Exception {
|
||||
String url = configuration.getProperty(URL_PROPERTY_KEY);
|
||||
//String username = configuration.getProperty(USERNAME_PROPERTY_KEY);
|
||||
String password = configuration.getProperty(PASSWORD_PROPERTY_KEY);
|
||||
|
||||
try {
|
||||
|
||||
cluster = CouchbaseCluster.create(ENV, url);
|
||||
|
||||
|
||||
logger.trace("cluster: {}",url);
|
||||
|
||||
bucketNameStorage = configuration.getProperty(BUCKET_STORAGE_NAME_PROPERTY_KEY);
|
||||
bucketNameService = configuration.getProperty(BUCKET_SERVICE_NAME_PROPERTY_KEY);
|
||||
bucketNameJob = configuration.getProperty(BUCKET_JOB_NAME_PROPERTY_KEY);
|
||||
|
@ -110,47 +107,31 @@ public class PersistenceCouchBase extends PersistenceBackend {
|
|||
|
||||
connectionMap = new HashMap<String, Bucket>();
|
||||
|
||||
|
||||
|
||||
|
||||
bucketStorage = cluster.openBucket(bucketNameStorage, password);
|
||||
connectionMap.put(BUCKET_STORAGE_TYPE, bucketStorage);
|
||||
logger.trace("open bucket: {} with {}",bucketNameStorage,BUCKET_STORAGE_TYPE);
|
||||
|
||||
|
||||
bucketService = cluster.openBucket(bucketNameService, password);
|
||||
connectionMap.put(BUCKET_SERVICE_TYPE, bucketService);
|
||||
logger.trace("open bucket: {} with {}",bucketNameService,BUCKET_SERVICE_TYPE);
|
||||
|
||||
|
||||
bucketJob= cluster.openBucket(bucketNameJob, password);
|
||||
connectionMap.put(BUCKET_JOB_TYPE, bucketJob);
|
||||
logger.trace("open bucket: {} with {}",bucketNameJob,BUCKET_JOB_TYPE);
|
||||
|
||||
bucketPortlet= cluster.openBucket(bucketNamePortlet, password);
|
||||
connectionMap.put(BUCKET_PORTLET_TYPE, bucketPortlet);
|
||||
logger.trace("open bucket: {} with {}",bucketNamePortlet,BUCKET_PORTLET_TYPE);
|
||||
|
||||
bucketTask= cluster.openBucket(bucketNameTask, password);
|
||||
connectionMap.put(BUCKET_TASK_TYPE, bucketTask);
|
||||
logger.trace("open bucket: {} with {}",bucketNameTask,BUCKET_TASK_TYPE);
|
||||
|
||||
/*DISABLE
|
||||
bucket = cluster.openBucket(
|
||||
configuration.getProperty(BUCKET_NAME_PROPERTY_KEY), password);
|
||||
*/
|
||||
|
||||
|
||||
} catch(Exception e) {
|
||||
logger.trace("Bucket connection error");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected JsonDocument createItem(JsonObject jsonObject, String id,String recordType) throws Exception {
|
||||
JsonDocument doc = JsonDocument.create(id, jsonObject);
|
||||
|
||||
logger.trace("record type:{} accounting on:{}",recordType,connectionMap.get(recordType).toString());
|
||||
|
||||
return connectionMap.get(recordType).upsert(doc);
|
||||
//return bucket.upsert(doc);
|
||||
}
|
||||
|
||||
public static JsonNode usageRecordToJsonNode(Record record) throws Exception {
|
||||
|
@ -177,10 +158,8 @@ public class PersistenceCouchBase extends PersistenceBackend {
|
|||
protected void reallyAccount(Record record) throws Exception {
|
||||
JsonNode node = PersistenceCouchBase.usageRecordToJsonNode(record);
|
||||
JsonObject jsonObject = JsonObject.fromJson(node.toString());
|
||||
|
||||
//get a bucket association
|
||||
String recordType=record.getRecordType();
|
||||
|
||||
createItem(jsonObject, record.getId(),recordType);
|
||||
}
|
||||
|
||||
|
|
Reference in New Issue