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.HashMap;
|
||||||
import java.util.Map;
|
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.Record;
|
||||||
import org.gcube.documentstore.records.RecordUtility;
|
import org.gcube.documentstore.records.RecordUtility;
|
||||||
import org.slf4j.Logger;
|
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.document.json.JsonObject;
|
||||||
import com.couchbase.client.java.env.CouchbaseEnvironment;
|
import com.couchbase.client.java.env.CouchbaseEnvironment;
|
||||||
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
|
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
|
||||||
import com.couchbase.client.java.query.N1qlQueryResult;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
|
* @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 {
|
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 URL_PROPERTY_KEY = "URL";
|
||||||
//public static final String USERNAME_PROPERTY_KEY = "username";
|
//public static final String USERNAME_PROPERTY_KEY = "username";
|
||||||
public static final String PASSWORD_PROPERTY_KEY = "password";
|
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_NAME_PROPERTY_KEY="AggregatedTaskUsageRecord";
|
||||||
public static final String BUCKET_TASK_TYPE="TaskUsageRecord";
|
public static final String BUCKET_TASK_TYPE="TaskUsageRecord";
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory
|
|
||||||
.getLogger(PersistenceCouchBase.class);
|
|
||||||
|
|
||||||
/* The environment configuration */
|
/* The environment configuration */
|
||||||
protected static final CouchbaseEnvironment ENV =
|
protected static final CouchbaseEnvironment ENV =
|
||||||
|
@ -94,14 +93,12 @@ public class PersistenceCouchBase extends PersistenceBackend {
|
||||||
@Override
|
@Override
|
||||||
protected void prepareConnection(PersistenceBackendConfiguration configuration) throws Exception {
|
protected void prepareConnection(PersistenceBackendConfiguration configuration) throws Exception {
|
||||||
String url = configuration.getProperty(URL_PROPERTY_KEY);
|
String url = configuration.getProperty(URL_PROPERTY_KEY);
|
||||||
//String username = configuration.getProperty(USERNAME_PROPERTY_KEY);
|
|
||||||
String password = configuration.getProperty(PASSWORD_PROPERTY_KEY);
|
String password = configuration.getProperty(PASSWORD_PROPERTY_KEY);
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
cluster = CouchbaseCluster.create(ENV, url);
|
cluster = CouchbaseCluster.create(ENV, url);
|
||||||
|
|
||||||
|
|
||||||
logger.trace("cluster: {}",url);
|
|
||||||
|
|
||||||
bucketNameStorage = configuration.getProperty(BUCKET_STORAGE_NAME_PROPERTY_KEY);
|
bucketNameStorage = configuration.getProperty(BUCKET_STORAGE_NAME_PROPERTY_KEY);
|
||||||
bucketNameService = configuration.getProperty(BUCKET_SERVICE_NAME_PROPERTY_KEY);
|
bucketNameService = configuration.getProperty(BUCKET_SERVICE_NAME_PROPERTY_KEY);
|
||||||
bucketNameJob = configuration.getProperty(BUCKET_JOB_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>();
|
connectionMap = new HashMap<String, Bucket>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bucketStorage = cluster.openBucket(bucketNameStorage, password);
|
bucketStorage = cluster.openBucket(bucketNameStorage, password);
|
||||||
connectionMap.put(BUCKET_STORAGE_TYPE, bucketStorage);
|
connectionMap.put(BUCKET_STORAGE_TYPE, bucketStorage);
|
||||||
logger.trace("open bucket: {} with {}",bucketNameStorage,BUCKET_STORAGE_TYPE);
|
|
||||||
|
|
||||||
|
|
||||||
bucketService = cluster.openBucket(bucketNameService, password);
|
bucketService = cluster.openBucket(bucketNameService, password);
|
||||||
connectionMap.put(BUCKET_SERVICE_TYPE, bucketService);
|
connectionMap.put(BUCKET_SERVICE_TYPE, bucketService);
|
||||||
logger.trace("open bucket: {} with {}",bucketNameService,BUCKET_SERVICE_TYPE);
|
|
||||||
|
|
||||||
|
|
||||||
bucketJob= cluster.openBucket(bucketNameJob, password);
|
bucketJob= cluster.openBucket(bucketNameJob, password);
|
||||||
connectionMap.put(BUCKET_JOB_TYPE, bucketJob);
|
connectionMap.put(BUCKET_JOB_TYPE, bucketJob);
|
||||||
logger.trace("open bucket: {} with {}",bucketNameJob,BUCKET_JOB_TYPE);
|
|
||||||
|
|
||||||
bucketPortlet= cluster.openBucket(bucketNamePortlet, password);
|
bucketPortlet= cluster.openBucket(bucketNamePortlet, password);
|
||||||
connectionMap.put(BUCKET_PORTLET_TYPE, bucketPortlet);
|
connectionMap.put(BUCKET_PORTLET_TYPE, bucketPortlet);
|
||||||
logger.trace("open bucket: {} with {}",bucketNamePortlet,BUCKET_PORTLET_TYPE);
|
|
||||||
|
|
||||||
bucketTask= cluster.openBucket(bucketNameTask, password);
|
bucketTask= cluster.openBucket(bucketNameTask, password);
|
||||||
connectionMap.put(BUCKET_TASK_TYPE, bucketTask);
|
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 {
|
protected JsonDocument createItem(JsonObject jsonObject, String id,String recordType) throws Exception {
|
||||||
JsonDocument doc = JsonDocument.create(id, jsonObject);
|
JsonDocument doc = JsonDocument.create(id, jsonObject);
|
||||||
|
|
||||||
logger.trace("record type:{} accounting on:{}",recordType,connectionMap.get(recordType).toString());
|
|
||||||
|
|
||||||
return connectionMap.get(recordType).upsert(doc);
|
return connectionMap.get(recordType).upsert(doc);
|
||||||
//return bucket.upsert(doc);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static JsonNode usageRecordToJsonNode(Record record) throws Exception {
|
public static JsonNode usageRecordToJsonNode(Record record) throws Exception {
|
||||||
|
@ -177,10 +158,8 @@ public class PersistenceCouchBase extends PersistenceBackend {
|
||||||
protected void reallyAccount(Record record) throws Exception {
|
protected void reallyAccount(Record record) throws Exception {
|
||||||
JsonNode node = PersistenceCouchBase.usageRecordToJsonNode(record);
|
JsonNode node = PersistenceCouchBase.usageRecordToJsonNode(record);
|
||||||
JsonObject jsonObject = JsonObject.fromJson(node.toString());
|
JsonObject jsonObject = JsonObject.fromJson(node.toString());
|
||||||
|
|
||||||
//get a bucket association
|
//get a bucket association
|
||||||
String recordType=record.getRecordType();
|
String recordType=record.getRecordType();
|
||||||
|
|
||||||
createItem(jsonObject, record.getId(),recordType);
|
createItem(jsonObject, record.getId(),recordType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue