diff --git a/src/main/java/org/gcube/informationsystem/exporter/mapper/ServiceEndpointExporter.java b/src/main/java/org/gcube/informationsystem/exporter/mapper/ServiceEndpointExporter.java index fa50740..845eeb6 100644 --- a/src/main/java/org/gcube/informationsystem/exporter/mapper/ServiceEndpointExporter.java +++ b/src/main/java/org/gcube/informationsystem/exporter/mapper/ServiceEndpointExporter.java @@ -11,12 +11,14 @@ import org.gcube.common.resources.gcore.ServiceEndpoint.Property; import org.gcube.common.resources.gcore.ServiceEndpoint.Runtime; import org.gcube.common.resources.gcore.common.Platform; import org.gcube.common.resources.gcore.utils.Group; +import org.gcube.informationsystem.model.impl.properties.EncryptedImpl; import org.gcube.informationsystem.model.impl.properties.HeaderImpl; import org.gcube.informationsystem.model.impl.relation.ConsistsOfImpl; import org.gcube.informationsystem.model.impl.relation.IsIdentifiedByImpl; import org.gcube.informationsystem.model.impl.utils.ISMapper; import org.gcube.informationsystem.model.reference.entity.Facet; import org.gcube.informationsystem.model.reference.entity.Resource; +import org.gcube.informationsystem.model.reference.properties.Encrypted; import org.gcube.informationsystem.model.reference.properties.Header; import org.gcube.informationsystem.model.reference.relation.ConsistsOf; import org.gcube.informationsystem.model.reference.relation.IsIdentifiedBy; @@ -26,13 +28,11 @@ import org.gcube.resourcemanagement.model.impl.entity.facet.AccessPointFacetImpl import org.gcube.resourcemanagement.model.impl.entity.facet.NetworkingFacetImpl; import org.gcube.resourcemanagement.model.impl.entity.facet.ServiceStateFacetImpl; import org.gcube.resourcemanagement.model.impl.entity.facet.SoftwareFacetImpl; -import org.gcube.resourcemanagement.model.impl.entity.properties.ValueSchemaImpl; import org.gcube.resourcemanagement.model.impl.entity.resource.EServiceImpl; import org.gcube.resourcemanagement.model.reference.entity.facet.AccessPointFacet; import org.gcube.resourcemanagement.model.reference.entity.facet.NetworkingFacet; import org.gcube.resourcemanagement.model.reference.entity.facet.ServiceStateFacet; import org.gcube.resourcemanagement.model.reference.entity.facet.SoftwareFacet; -import org.gcube.resourcemanagement.model.reference.entity.properties.ValueSchema; import org.gcube.resourcemanagement.model.reference.entity.resource.EService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,22 +53,15 @@ public class ServiceEndpointExporter extends GCoreResourceMapper properties = accessPoint.properties(); if(properties!=null && properties.size()>0){ ObjectNode propertiesObjectNode = ISMapper.getObjectMapper().createObjectNode(); + /* + * List/Set support is currently disabled due to OrientDB bug see https://github.com/orientechnologies/orientdb/issues/7354 + */ + // This is a workaround ArrayNode arrayNode = propertiesObjectNode.putArray(ARRAY); for(Property property : properties){ ObjectNode objectNode = ISMapper.getObjectMapper().createObjectNode(); objectNode.put(NAME, property.name()); - objectNode.put(VALUE, property.value()); - objectNode.put(ENCRYPTED, Boolean.toString(property.isEncrypted())); + boolean encryptedValue = property.isEncrypted(); + if(encryptedValue) { + Encrypted encrypted = new EncryptedImpl(); + encrypted.setEncryptedValue(property.value()); + objectNode.put(VALUE, encryptedValue); + }else { + objectNode.put(VALUE, property.value()); + } arrayNode.add(objectNode); } accessPointFacets[i].setAdditionalProperty(PROPERTIES, propertiesObjectNode); } + /* END Managing AccessPoint Properties */ i++; }