diff --git a/.classpath b/.classpath
index ca9d765..dcb2dc5 100644
--- a/.classpath
+++ b/.classpath
@@ -20,7 +20,6 @@
-
diff --git a/distro/README b/distro/README
index 17c19bb..9c0f1b1 100644
--- a/distro/README
+++ b/distro/README
@@ -21,11 +21,14 @@ Authors
--------------------------------------------------
* Luca Frosini (luca.frosini-AT-isti.cnr.it), Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" - CNR, Pisa (Italy).
+* Alessandro Pieve (alessandro.pieve-AT-isti.cnr.it), Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" - CNR, Pisa (Italy).
+
Maintainers
-----------
* Luca Frosini (luca.frosini-AT-isti.cnr.it), Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" - CNR, Pisa (Italy).
+* Alessandro Pieve (alessandro.pieve-AT-isti.cnr.it), Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" - CNR, Pisa (Italy).
Download information
diff --git a/pom.xml b/pom.xml
index 576a65c..a9f9609 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,7 +56,6 @@
org.gcube.data.publishing
document-store-lib
- provided
org.gcube.resources.discovery
diff --git a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java
index 17c47d0..fc0255f 100644
--- a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java
+++ b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java
@@ -12,6 +12,7 @@ import org.gcube.accounting.datamodel.validations.validators.ValidOperationResul
import org.gcube.common.authorization.client.Constants;
import org.gcube.common.authorization.library.AuthorizationEntry;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
+import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.documentstore.exception.InvalidValueException;
import org.gcube.documentstore.records.Record;
import org.gcube.documentstore.records.implementation.AbstractRecord;
@@ -20,6 +21,7 @@ import org.gcube.documentstore.records.implementation.validations.annotations.No
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
/**
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
*
@@ -30,7 +32,7 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe
* Generated Serial Version UID
*/
private static final long serialVersionUID = -2060728578456796388L;
-
+
private static Logger logger = LoggerFactory.getLogger(BasicUsageRecord.class);
/**
@@ -39,28 +41,33 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe
*/
@Deprecated @MoveToRecordType
public static final String USAGE_RECORD_TYPE = "usageRecordType";
-
+
@RequiredField @NotEmpty
public static final String CONSUMER_ID = UsageRecord.CONSUMER_ID;
-
+
@RequiredField @NotEmpty
public static final String SCOPE = UsageRecord.SCOPE;
-
+
@RequiredField @ValidOperationResult
public static final String OPERATION_RESULT = UsageRecord.OPERATION_RESULT;
-
+
public static String getScopeFromToken(){
- String token = SecurityTokenProvider.instance.get();
- AuthorizationEntry authorizationEntry;
- try {
- authorizationEntry = Constants.authorizationService().get(token);
- } catch (Exception e) {
- throw new RuntimeException(e);
+
+ String scope =ScopeProvider.instance.get();
+ if (scope==null){
+ String token = SecurityTokenProvider.instance.get();
+
+ AuthorizationEntry authorizationEntry;
+ try {
+ authorizationEntry = Constants.authorizationService().get(token);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ scope = authorizationEntry.getContext();
}
- String scope = authorizationEntry.getContext();
return scope;
}
-
+
/**
* Initialize variable
*/
@@ -73,7 +80,7 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe
logger.warn("Unable to automaticcally set the scope using scope provider. The record will not be valid if the scope will not be explicitly set.");
}
}
-
+
public BasicUsageRecord(){
super();
}
@@ -97,8 +104,8 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe
public void setConsumerId(String consumerId) throws InvalidValueException {
setResourceProperty(CONSUMER_ID, consumerId);
}
-
-
+
+
/**
* {@inheritDoc}
*/
@@ -106,7 +113,7 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe
public String getScope() {
return (String) this.resourceProperties.get(SCOPE);
}
-
+
/**
* {@inheritDoc}
*/
@@ -114,7 +121,7 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe
public void setScope(String scope) throws InvalidValueException {
setResourceProperty(SCOPE, scope);
}
-
+
/**
* {@inheritDoc}
*/
@@ -127,7 +134,7 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe
return null;
}
}
-
+
/**
* {@inheritDoc}
* @throws InvalidValueException
diff --git a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractServiceUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractServiceUsageRecord.java
index f4079fe..e0356d0 100644
--- a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractServiceUsageRecord.java
+++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractServiceUsageRecord.java
@@ -48,17 +48,27 @@ public abstract class AbstractServiceUsageRecord extends BasicUsageRecord {
public static final String SERVICE_NAME = "serviceName";
/**
- * KEY for : Service Name
+ * KEY for : Called Method
*/
@RequiredField @NotEmpty
public static final String CALLED_METHOD = "calledMethod";
/**
- * KEY for : Service Name
+ * KEY for : Duration
*/
@RequiredField @ValidLong
public static final String DURATION = "duration";
+ /**
+ * KEY for : callerQualifier
+ *
+ */
+ @RequiredField @NotEmpty
+ public static final String CALLERQUALIFIER = "callerQualifier";
+
+
+
+
public AbstractServiceUsageRecord(){
super();
}
@@ -124,4 +134,13 @@ public abstract class AbstractServiceUsageRecord extends BasicUsageRecord {
public void setDuration(Long duration) throws InvalidValueException {
setResourceProperty(DURATION, duration);
}
+
+ /*Add a new field*/
+ public String getCallerQualifier() {
+ return (String) this.resourceProperties.get(CALLERQUALIFIER);
+ }
+ public void setCallerQualifier(String callerQualifier) throws InvalidValueException {
+ setResourceProperty(CALLERQUALIFIER, callerQualifier);
+ }
+
}
diff --git a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractStorageUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractStorageUsageRecord.java
index eb9efba..900217e 100644
--- a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractStorageUsageRecord.java
+++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractStorageUsageRecord.java
@@ -85,6 +85,15 @@ public abstract class AbstractStorageUsageRecord extends BasicUsageRecord {
@NotEmptyIfNotNull
public static final String QUALIFIER = "qualifier";
+
+
+ /**
+ * KEY for : callerQualifier
+ */
+ /*
+ @NotEmptyIfNotNull
+ public static final String CALLERQUALIFIER = "callerQualifier";
+ */
public AbstractStorageUsageRecord() {
super();
}
@@ -184,4 +193,13 @@ public abstract class AbstractStorageUsageRecord extends BasicUsageRecord {
setResourceProperty(QUALIFIER, qualifier);
}
+ /*Add a new field*/
+ /*
+ public String getCallerQualifier() {
+ return (String) this.resourceProperties.get(CALLERQUALIFIER);
+ }
+ public void setCallerQualifier(String callerQualifier) throws InvalidValueException {
+ setResourceProperty(CALLERQUALIFIER, callerQualifier);
+ }
+ */
}