From 716952eaef65fad33c53181d7bba289cbbfc30a8 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Mon, 18 Sep 2017 13:08:46 +0000 Subject: [PATCH] Fixed jackson annotations for a proper marshalling/unmershalling git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-lib@153169 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../org/gcube/accounting/datamodel/BasicUsageRecord.java | 6 ------ .../java/org/gcube/accounting/datamodel/UsageRecord.java | 8 +++++--- .../datamodel/aggregation/AggregatedJobUsageRecord.java | 5 ++++- .../aggregation/AggregatedServiceUsageRecord.java | 3 +++ .../datamodel/basetypes/AbstractServiceUsageRecord.java | 9 +++++++++ .../aggregation/AggregatedServiceUsageRecordTest.java | 8 ++++++-- 6 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java index 1c3a47c..c1ae3be 100644 --- a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java @@ -97,7 +97,6 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe /** * {@inheritDoc} */ - @JsonIgnore @Override public String getConsumerId() { return (String) this.resourceProperties.get(CONSUMER_ID); @@ -106,14 +105,12 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe /** * {@inheritDoc} */ - @JsonIgnore @Override public void setConsumerId(String consumerId) throws InvalidValueException { setResourceProperty(CONSUMER_ID, consumerId); } @Override - @JsonIgnore public String getRecordType() { return BasicUsageRecord.class.getSimpleName(); } @@ -121,7 +118,6 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe /** * {@inheritDoc} */ - @JsonIgnore @Override public String getScope() { return (String) this.resourceProperties.get(SCOPE); @@ -130,7 +126,6 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe /** * {@inheritDoc} */ - @JsonIgnore @Override public void setScope(String scope) throws InvalidValueException { setResourceProperty(SCOPE, scope); @@ -139,7 +134,6 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe /** * {@inheritDoc} */ - @JsonIgnore @Override public OperationResult getOperationResult() { try { diff --git a/src/main/java/org/gcube/accounting/datamodel/UsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/UsageRecord.java index 8d17232..a8d60dc 100644 --- a/src/main/java/org/gcube/accounting/datamodel/UsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/UsageRecord.java @@ -5,6 +5,8 @@ import java.io.Serializable; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.records.Record; +import com.fasterxml.jackson.annotation.JsonIgnore; + /** * @author Luca Frosini (ISTI - CNR) */ @@ -35,6 +37,7 @@ public interface UsageRecord extends Record { /** * @return the Operation Result of the accounted operation. */ + @JsonIgnore public OperationResult getOperationResult(); /** @@ -49,6 +52,7 @@ public interface UsageRecord extends Record { * communication is another service) * @return Consumer ID */ + @JsonIgnore public String getConsumerId(); /** @@ -63,6 +67,7 @@ public interface UsageRecord extends Record { * Return the scope of this {#UsageRecord} * @return The scope of this {#UsageRecord} */ + @JsonIgnore public String getScope(); /** @@ -71,8 +76,5 @@ public interface UsageRecord extends Record { * @throws InvalidValueException */ public void setScope(String scope) throws InvalidValueException; - - - } \ No newline at end of file diff --git a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedJobUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedJobUsageRecord.java index b51be21..6744a71 100644 --- a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedJobUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedJobUsageRecord.java @@ -18,6 +18,7 @@ import org.gcube.documentstore.records.implementation.AggregatedField; import org.gcube.documentstore.records.implementation.RequiredField; import org.gcube.documentstore.records.implementation.validations.annotations.ValidLong; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonTypeName; /** @@ -71,6 +72,7 @@ public class AggregatedJobUsageRecord extends AbstractJobUsageRecord implements super.setOperationCount(operationCount); } + @JsonIgnore public long getMaxInvocationTime() { return (Long) this.resourceProperties.get(MAX_INVOCATION_TIME); } @@ -79,6 +81,7 @@ public class AggregatedJobUsageRecord extends AbstractJobUsageRecord implements super.setResourceProperty(MAX_INVOCATION_TIME, maxInvocationTime); } + @JsonIgnore public long getMinInvocationTime() { return (Long) this.resourceProperties.get(MIN_INVOCATION_TIME); } @@ -126,7 +129,7 @@ public class AggregatedJobUsageRecord extends AbstractJobUsageRecord implements /** * {@inheritDoc} */ - @Override + @Override public Boolean isAggregated() { return super.isAggregated(); } diff --git a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecord.java index c3cdd06..79020f0 100644 --- a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecord.java @@ -17,6 +17,7 @@ import org.gcube.documentstore.records.implementation.AggregatedField; import org.gcube.documentstore.records.implementation.RequiredField; import org.gcube.documentstore.records.implementation.validations.annotations.ValidLong; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonTypeName; /** @@ -69,6 +70,7 @@ public class AggregatedServiceUsageRecord extends AbstractServiceUsageRecord imp super.setOperationCount(operationCount); } + @JsonIgnore public long getMaxInvocationTime() { return (Long) this.resourceProperties.get(MAX_INVOCATION_TIME); } @@ -77,6 +79,7 @@ public class AggregatedServiceUsageRecord extends AbstractServiceUsageRecord imp super.setResourceProperty(MAX_INVOCATION_TIME, maxInvocationTime); } + @JsonIgnore public long getMinInvocationTime() { return (Long) this.resourceProperties.get(MIN_INVOCATION_TIME); } 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 f42f9fd..d5ed584 100644 --- a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractServiceUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractServiceUsageRecord.java @@ -12,6 +12,8 @@ import org.gcube.documentstore.records.implementation.RequiredField; import org.gcube.documentstore.records.implementation.validations.annotations.NotEmpty; import org.gcube.documentstore.records.implementation.validations.annotations.ValidLong; +import com.fasterxml.jackson.annotation.JsonIgnore; + /** * @author Luca Frosini (ISTI - CNR) */ @@ -91,6 +93,7 @@ public abstract class AbstractServiceUsageRecord extends BasicUsageRecord { } + @JsonIgnore public String getCallerHost() { return (String) this.resourceProperties.get(CALLER_HOST); } @@ -99,6 +102,7 @@ public abstract class AbstractServiceUsageRecord extends BasicUsageRecord { setResourceProperty(CALLER_HOST, callerHost); } + @JsonIgnore public String getHost() { return (String) this.resourceProperties.get(HOST); } @@ -107,6 +111,7 @@ public abstract class AbstractServiceUsageRecord extends BasicUsageRecord { setResourceProperty(HOST, host); } + @JsonIgnore public String getServiceClass() { return (String) this.resourceProperties.get(SERVICE_CLASS); } @@ -115,6 +120,7 @@ public abstract class AbstractServiceUsageRecord extends BasicUsageRecord { setResourceProperty(SERVICE_CLASS, serviceClass); } + @JsonIgnore public String getServiceName() { return (String) this.resourceProperties.get(SERVICE_NAME); } @@ -123,6 +129,7 @@ public abstract class AbstractServiceUsageRecord extends BasicUsageRecord { setResourceProperty(SERVICE_NAME, serviceName); } + @JsonIgnore public String getCalledMethod() { return (String) this.resourceProperties.get(CALLED_METHOD); } @@ -131,6 +138,7 @@ public abstract class AbstractServiceUsageRecord extends BasicUsageRecord { setResourceProperty(CALLED_METHOD, calledMethod); } + @JsonIgnore public Long getDuration() { return (Long) this.resourceProperties.get(DURATION); } @@ -139,6 +147,7 @@ public abstract class AbstractServiceUsageRecord extends BasicUsageRecord { setResourceProperty(DURATION, duration); } + @JsonIgnore public String getCallerQualifier() { return (String) this.resourceProperties.get(CALLER_QUALIFIER); } diff --git a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java index 277c4d0..46e0665 100644 --- a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java @@ -12,6 +12,7 @@ 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.exception.NotAggregatableRecordsExceptions; +import org.gcube.documentstore.records.DSMapper; import org.gcube.testutility.ScopedTest; import org.gcube.testutility.TestUsageRecord; import org.junit.Assert; @@ -19,6 +20,8 @@ import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.fasterxml.jackson.core.JsonProcessingException; + /** * @author Luca Frosini (ISTI - CNR) * @@ -153,7 +156,7 @@ public class AggregatedServiceUsageRecordTest extends ScopedTest { } @Test - public void aggregationStressTest() throws InvalidValueException, NotAggregatableRecordsExceptions { + public void aggregationStressTest() throws InvalidValueException, NotAggregatableRecordsExceptions, JsonProcessingException { SecurityTokenProvider.instance.reset(); ScopeProvider.instance.reset(); ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecord(); @@ -204,8 +207,9 @@ public class AggregatedServiceUsageRecordTest extends ScopedTest { } Assert.assertTrue(aggregated.getRecordType().compareTo(ServiceUsageRecord.class.getSimpleName())==0); + Assert.assertTrue(aggregated.getOperationCount()==1001); - logger.debug("Resulting Aggregated ServiceUsageRecord: {}", aggregated); + logger.debug("Resulting Aggregated ServiceUsageRecord: {}", DSMapper.marshal(aggregated)); } }