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); + } + */ }