diff --git a/CHANGELOG.md b/CHANGELOG.md index 302fd7d..0e6db4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm # Changelog for Information System Model +## [v7.0.0] + +- [#24992] + + ## [v6.0.0] - Modified models discovery to make it easier and more powerful [#24548] diff --git a/pom.xml b/pom.xml index 70372ac..370c64b 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.gcube.information-system information-system-model - 6.0.0 + 7.0.0-SNAPSHOT Information System Model Information System Model is the reference model of the gCube Information System jar @@ -31,7 +31,7 @@ org.gcube.distribution gcube-bom - 2.2.0 + 2.4.0-SNAPSHOT pom import @@ -62,6 +62,12 @@ authorization-utils [2.0.0, 3.0.0-SNAPSHOT) test + + + org.slf4j + slf4j-simple + + junit diff --git a/src/main/java/org/gcube/informationsystem/base/impl/entities/EntityElementImpl.java b/src/main/java/org/gcube/informationsystem/base/impl/entities/EntityElementImpl.java index ccf169c..05fa6a4 100644 --- a/src/main/java/org/gcube/informationsystem/base/impl/entities/EntityElementImpl.java +++ b/src/main/java/org/gcube/informationsystem/base/impl/entities/EntityElementImpl.java @@ -1,11 +1,12 @@ package org.gcube.informationsystem.base.impl.entities; import java.io.StringWriter; +import java.util.UUID; import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName; import org.gcube.informationsystem.base.impl.ElementImpl; import org.gcube.informationsystem.base.reference.entities.EntityElement; -import org.gcube.informationsystem.model.reference.properties.Header; +import org.gcube.informationsystem.model.reference.properties.Metadata; import org.gcube.informationsystem.serialization.ElementMapper; /** @@ -19,20 +20,31 @@ public abstract class EntityElementImpl extends ElementImpl implements EntityEle */ private static final long serialVersionUID = -4488771434017342703L; - protected Header header; + protected UUID uuid; + protected Metadata metadata; protected EntityElementImpl(){ super(); } @Override - public Header getHeader() { - return header; + public UUID getUUID() { + return uuid; + } + + @Override + public void setUUID(UUID uuid) { + this.uuid = uuid; } @Override - public void setHeader(Header header){ - this.header = header; + public Metadata getMetadata() { + return metadata; + } + + @Override + public void setMetadata(Metadata metadata){ + this.metadata = metadata; } @Override @@ -43,7 +55,7 @@ public abstract class EntityElementImpl extends ElementImpl implements EntityEle return stringWriter.toString(); }catch(Exception e){ try { - ElementMapper.marshal(this.header, stringWriter); + ElementMapper.marshal(this.metadata, stringWriter); return stringWriter.toString(); } catch(Exception e1){ return super.toString(); diff --git a/src/main/java/org/gcube/informationsystem/base/impl/relations/RelationElementImpl.java b/src/main/java/org/gcube/informationsystem/base/impl/relations/RelationElementImpl.java index 96c9587..c8142f6 100644 --- a/src/main/java/org/gcube/informationsystem/base/impl/relations/RelationElementImpl.java +++ b/src/main/java/org/gcube/informationsystem/base/impl/relations/RelationElementImpl.java @@ -1,10 +1,12 @@ package org.gcube.informationsystem.base.impl.relations; +import java.util.UUID; + import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName; import org.gcube.informationsystem.base.impl.ElementImpl; import org.gcube.informationsystem.base.reference.entities.EntityElement; import org.gcube.informationsystem.base.reference.relations.RelationElement; -import org.gcube.informationsystem.model.reference.properties.Header; +import org.gcube.informationsystem.model.reference.properties.Metadata; /** * @author Luca Frosini (ISTI - CNR) @@ -17,7 +19,8 @@ public abstract class RelationElementImpl(); } + public ContextImpl(UUID uuid) { + this(null, uuid); + } + public ContextImpl(String name) { this(name, null); } @@ -47,9 +52,23 @@ public final class ContextImpl extends EntityElementImpl implements Context { this(); this.name = name; if(uuid == null){ - uuid = UUIDManager.generateValidRandomUUID(); + uuid = UUIDManager.getInstance().generateValidRandomUUID(); } - this.header = new HeaderImpl(uuid); + this.uuid = uuid; + this.metadata = new MetadataImpl(); + } + + /** + * @return the uuid + */ + @Override + public UUID getUUID() { + return uuid; + } + + @Override + public void setUUID(UUID uuid) { + this.uuid = uuid; } @Override @@ -72,8 +91,8 @@ public final class ContextImpl extends EntityElementImpl implements Context { public void setParent(UUID uuid) { Context parent = null; if(uuid!=null) { - parent = new ContextImpl(); - parent.setHeader(new HeaderImpl(uuid)); + parent = new ContextImpl(uuid); + parent.setMetadata(new MetadataImpl()); } setParent(parent); } @@ -121,8 +140,8 @@ public final class ContextImpl extends EntityElementImpl implements Context { @Override public void addChild(UUID uuid) { - Context child = new ContextImpl(); - child.setHeader(new HeaderImpl(uuid)); + Context child = new ContextImpl(uuid); + child.setMetadata(new MetadataImpl()); addChild(child); } diff --git a/src/main/java/org/gcube/informationsystem/model/impl/entities/DummyFacet.java b/src/main/java/org/gcube/informationsystem/model/impl/entities/DummyFacet.java index 6016911..20890ba 100644 --- a/src/main/java/org/gcube/informationsystem/model/impl/entities/DummyFacet.java +++ b/src/main/java/org/gcube/informationsystem/model/impl/entities/DummyFacet.java @@ -5,7 +5,7 @@ package org.gcube.informationsystem.model.impl.entities; import java.util.UUID; -import org.gcube.informationsystem.model.impl.properties.HeaderImpl; +import org.gcube.informationsystem.model.impl.properties.MetadataImpl; import org.gcube.informationsystem.model.reference.entities.Facet; import org.gcube.informationsystem.types.reference.Change; import org.gcube.informationsystem.types.reference.TypeMetadata; @@ -25,7 +25,8 @@ public class DummyFacet extends FacetImpl implements Facet { public DummyFacet(UUID uuid) { super(); - this.header = new HeaderImpl(uuid); + this.uuid = uuid; + this.metadata = new MetadataImpl(); } public DummyFacet(){ diff --git a/src/main/java/org/gcube/informationsystem/model/impl/entities/DummyResource.java b/src/main/java/org/gcube/informationsystem/model/impl/entities/DummyResource.java index 17afe87..683bd41 100644 --- a/src/main/java/org/gcube/informationsystem/model/impl/entities/DummyResource.java +++ b/src/main/java/org/gcube/informationsystem/model/impl/entities/DummyResource.java @@ -5,7 +5,7 @@ package org.gcube.informationsystem.model.impl.entities; import java.util.UUID; -import org.gcube.informationsystem.model.impl.properties.HeaderImpl; +import org.gcube.informationsystem.model.impl.properties.MetadataImpl; import org.gcube.informationsystem.model.reference.entities.Resource; import org.gcube.informationsystem.types.reference.Change; import org.gcube.informationsystem.types.reference.TypeMetadata; @@ -25,7 +25,8 @@ public class DummyResource extends ResourceImpl implements Resource { public DummyResource(UUID uuid){ super(); - this.header = new HeaderImpl(uuid); + this.uuid = uuid; + this.metadata = new MetadataImpl(); } public DummyResource(){ diff --git a/src/main/java/org/gcube/informationsystem/model/impl/entities/EntityImpl.java b/src/main/java/org/gcube/informationsystem/model/impl/entities/EntityImpl.java index 677d8b4..87a6f43 100644 --- a/src/main/java/org/gcube/informationsystem/model/impl/entities/EntityImpl.java +++ b/src/main/java/org/gcube/informationsystem/model/impl/entities/EntityImpl.java @@ -20,7 +20,7 @@ public abstract class EntityImpl extends EntityElementImpl implements Entity { protected EntityImpl(){ super(); - this.header = null; + this.metadata = null; } } diff --git a/src/main/java/org/gcube/informationsystem/model/impl/entities/ResourceImpl.java b/src/main/java/org/gcube/informationsystem/model/impl/entities/ResourceImpl.java index 0b8c1ba..a961f8c 100644 --- a/src/main/java/org/gcube/informationsystem/model/impl/entities/ResourceImpl.java +++ b/src/main/java/org/gcube/informationsystem/model/impl/entities/ResourceImpl.java @@ -177,14 +177,12 @@ public abstract class ResourceImpl extends EntityImpl implements Resource { throw new RuntimeException(message); } - if (relation.getSource().getHeader()!= null && - relation.getSource().getHeader().getUUID() != null && - this.header !=null && - this.header.getUUID() != null && - relation.getSource().getHeader().getUUID().compareTo(this.header.getUUID())!=0) { - + if (relation.getSource().getMetadata()!= null && + relation.getSource().getUUID() != null && + this.metadata !=null && + this.uuid != null && + relation.getSource().getUUID().compareTo(this.uuid)!=0) { throw new RuntimeException(message); - } if(relation.getSource()!=this){ diff --git a/src/main/java/org/gcube/informationsystem/model/impl/properties/VaultImpl.java b/src/main/java/org/gcube/informationsystem/model/impl/properties/EncryptedImpl.java similarity index 72% rename from src/main/java/org/gcube/informationsystem/model/impl/properties/VaultImpl.java rename to src/main/java/org/gcube/informationsystem/model/impl/properties/EncryptedImpl.java index 7042695..d60787f 100644 --- a/src/main/java/org/gcube/informationsystem/model/impl/properties/VaultImpl.java +++ b/src/main/java/org/gcube/informationsystem/model/impl/properties/EncryptedImpl.java @@ -5,13 +5,13 @@ package org.gcube.informationsystem.model.impl.properties; import org.gcube.com.fasterxml.jackson.annotation.JsonIgnore; import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName; -import org.gcube.informationsystem.model.reference.properties.Vault; +import org.gcube.informationsystem.model.reference.properties.Encrypted; /** * @author Luca Frosini (ISTI - CNR) */ -@JsonTypeName(value = Vault.NAME) -public class VaultImpl extends PropertyImpl implements Vault { +@JsonTypeName(value = Encrypted.NAME) +public class EncryptedImpl extends PropertyImpl implements Encrypted { /** * Generated Serial Version UID @@ -21,7 +21,7 @@ public class VaultImpl extends PropertyImpl implements Vault { @JsonIgnore protected String value; - public VaultImpl() { + public EncryptedImpl() { super(); } diff --git a/src/main/java/org/gcube/informationsystem/model/impl/properties/HeaderImpl.java b/src/main/java/org/gcube/informationsystem/model/impl/properties/MetadataImpl.java similarity index 62% rename from src/main/java/org/gcube/informationsystem/model/impl/properties/HeaderImpl.java rename to src/main/java/org/gcube/informationsystem/model/impl/properties/MetadataImpl.java index 2f3e706..4bee22d 100644 --- a/src/main/java/org/gcube/informationsystem/model/impl/properties/HeaderImpl.java +++ b/src/main/java/org/gcube/informationsystem/model/impl/properties/MetadataImpl.java @@ -4,49 +4,30 @@ package org.gcube.informationsystem.model.impl.properties; import java.util.Date; -import java.util.UUID; import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName; -import org.gcube.informationsystem.model.reference.properties.Header; +import org.gcube.informationsystem.model.reference.properties.Metadata; /** * @author Luca Frosini (ISTI - CNR) */ -@JsonTypeName(value=Header.NAME) -public final class HeaderImpl extends PropertyImpl implements Header { +@JsonTypeName(value=Metadata.NAME) +public final class MetadataImpl extends PropertyImpl implements Metadata { /** * Generated Serial Version UID */ private static final long serialVersionUID = 5102553511155113169L; - protected UUID uuid; protected String createdBy; protected Date creationTime; protected String lastUpdateBy; protected Date lastUpdateTime; - public HeaderImpl() { + public MetadataImpl() { super(); } - public HeaderImpl(UUID uuid) { - this.uuid = uuid; - } - - /** - * @return the uuid - */ - @Override - public UUID getUUID() { - return uuid; - } - - @Override - public void setUUID(UUID uuid) { - this.uuid = uuid; - } - @Override public String getCreatedBy() { return createdBy; diff --git a/src/main/java/org/gcube/informationsystem/model/reference/properties/Vault.java b/src/main/java/org/gcube/informationsystem/model/reference/properties/Encrypted.java similarity index 68% rename from src/main/java/org/gcube/informationsystem/model/reference/properties/Vault.java rename to src/main/java/org/gcube/informationsystem/model/reference/properties/Encrypted.java index 47789e5..22833f9 100644 --- a/src/main/java/org/gcube/informationsystem/model/reference/properties/Vault.java +++ b/src/main/java/org/gcube/informationsystem/model/reference/properties/Encrypted.java @@ -3,7 +3,7 @@ package org.gcube.informationsystem.model.reference.properties; import org.gcube.com.fasterxml.jackson.annotation.JsonGetter; import org.gcube.com.fasterxml.jackson.annotation.JsonSetter; import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import org.gcube.informationsystem.model.impl.properties.VaultImpl; +import org.gcube.informationsystem.model.impl.properties.EncryptedImpl; import org.gcube.informationsystem.types.annotations.ISProperty; import org.gcube.informationsystem.types.reference.Change; import org.gcube.informationsystem.types.reference.TypeMetadata; @@ -12,12 +12,12 @@ import org.gcube.informationsystem.utils.Version; /** * @author Luca Frosini (ISTI - CNR) */ -@JsonDeserialize(as=VaultImpl.class) -@TypeMetadata(name = Vault.NAME, description = "This type is used to properly manage values must be stored safely (e.g. encrypted) in the IS.", version = Version.MINIMAL_VERSION_STRING) +@JsonDeserialize(as=EncryptedImpl.class) +@TypeMetadata(name = Encrypted.NAME, description = "This type is used to properly manage values must be stored safely (e.g. encrypted) in the IS.", version = Version.MINIMAL_VERSION_STRING) @Change(version = Version.MINIMAL_VERSION_STRING, description = Version.MINIMAL_VERSION_DESCRIPTION) -public interface Vault extends Property { +public interface Encrypted extends Property { - public static final String NAME = "Vault"; // Vault.class.getSimpleName(); + public static final String NAME = "Encrypted"; // Encrypted.class.getSimpleName(); public static final String VALUE = "value"; diff --git a/src/main/java/org/gcube/informationsystem/model/reference/properties/Header.java b/src/main/java/org/gcube/informationsystem/model/reference/properties/Metadata.java similarity index 75% rename from src/main/java/org/gcube/informationsystem/model/reference/properties/Header.java rename to src/main/java/org/gcube/informationsystem/model/reference/properties/Metadata.java index 1b5199e..3b7a298 100644 --- a/src/main/java/org/gcube/informationsystem/model/reference/properties/Header.java +++ b/src/main/java/org/gcube/informationsystem/model/reference/properties/Metadata.java @@ -4,12 +4,11 @@ package org.gcube.informationsystem.model.reference.properties; import java.util.Date; -import java.util.UUID; import org.gcube.com.fasterxml.jackson.annotation.JsonFormat; import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.gcube.informationsystem.base.reference.Element; -import org.gcube.informationsystem.model.impl.properties.HeaderImpl; +import org.gcube.informationsystem.model.impl.properties.MetadataImpl; import org.gcube.informationsystem.types.annotations.Final; import org.gcube.informationsystem.types.annotations.ISProperty; import org.gcube.informationsystem.types.reference.Change; @@ -17,31 +16,28 @@ import org.gcube.informationsystem.types.reference.TypeMetadata; import org.gcube.informationsystem.utils.Version; /** - * https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Header - * * @author Luca Frosini (ISTI - CNR) */ -@JsonDeserialize(as=HeaderImpl.class) -@TypeMetadata(name = Header.NAME, description = "This type provides metadata per every IdentifiableElement", version = Version.MINIMAL_VERSION_STRING) +@JsonDeserialize(as=MetadataImpl.class) +@TypeMetadata(name = Metadata.NAME, description = "This type provides metadata per every IdentifiableElement", version = Version.MINIMAL_VERSION_STRING) @Change(version = Version.MINIMAL_VERSION_STRING, description = Version.MINIMAL_VERSION_DESCRIPTION) @Final -public interface Header extends Property { +public interface Metadata extends Property { - public static final String NAME = "Header"; // Header.class.getSimpleName(); + public static final String NAME = "Metadata"; // Metadata.class.getSimpleName(); /** * Used to set Creator when the user is not known */ public static final String UNKNOWN_USER = "UNKNOWN_USER"; - public static final String UUID_PROPERTY = "uuid"; public static final String CREATED_BY_PROPERTY = "createdBy"; public static final String CREATION_TIME_PROPERTY = "creationTime"; public static final String LAST_UPDATE_BY_PROPERTY = "lastUpdateBy"; public static final String LAST_UPDATE_TIME_PROPERTY = "lastUpdateTime"; /** - * Used when requested to include contexts in header. + * Used when requested to include contexts in metadata. * This is not a native property (it is just generated by server for administration clients convenience) */ public static final String __CONTEXTS = "contexts"; @@ -59,10 +55,5 @@ public interface Header extends Property { @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = Element.DATETIME_PATTERN) @ISProperty(name = LAST_UPDATE_TIME_PROPERTY, description = "Last Update time. At creation time it assumes the same value of " + CREATION_TIME_PROPERTY + ". It is represented in the format " + Element.DATETIME_PATTERN, mandatory = true, nullable = false) public Date getLastUpdateTime(); - - @ISProperty(name = UUID_PROPERTY, description = "This UUID is be used to identify the Entity or the Relation univocally.", readonly = true, mandatory = true, nullable = false) - public UUID getUUID(); - - public void setUUID(UUID uuid); } \ No newline at end of file diff --git a/src/main/java/org/gcube/informationsystem/model/reference/relations/Relation.java b/src/main/java/org/gcube/informationsystem/model/reference/relations/Relation.java index d033095..33d4ecc 100644 --- a/src/main/java/org/gcube/informationsystem/model/reference/relations/Relation.java +++ b/src/main/java/org/gcube/informationsystem/model/reference/relations/Relation.java @@ -37,7 +37,7 @@ public interface Relation extends Relation public static final String NAME = "Relation"; //Relation.class.getSimpleName(); - public static final String PROPAGATION_CONSTRAINT_PROPERTY = "propagationConstraint"; + public static final String PROPAGATION_CONSTRAINT_PROPERTY = "@propagationConstraint"; @JsonIgnoreProperties({Resource.CONSISTS_OF_PROPERTY, Resource.IS_RELATED_TO_PROPERTY}) @JsonGetter(value = SOURCE_PROPERTY) diff --git a/src/main/java/org/gcube/informationsystem/types/impl/TypeImpl.java b/src/main/java/org/gcube/informationsystem/types/impl/TypeImpl.java index 5816cdf..2f54793 100644 --- a/src/main/java/org/gcube/informationsystem/types/impl/TypeImpl.java +++ b/src/main/java/org/gcube/informationsystem/types/impl/TypeImpl.java @@ -8,6 +8,7 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.TreeSet; +import java.util.UUID; import org.gcube.com.fasterxml.jackson.annotation.JsonGetter; import org.gcube.com.fasterxml.jackson.annotation.JsonIgnore; @@ -20,7 +21,7 @@ import org.gcube.informationsystem.base.reference.Element; import org.gcube.informationsystem.base.reference.entities.EntityElement; import org.gcube.informationsystem.base.reference.properties.PropertyElement; import org.gcube.informationsystem.base.reference.relations.RelationElement; -import org.gcube.informationsystem.model.reference.properties.Header; +import org.gcube.informationsystem.model.reference.properties.Metadata; import org.gcube.informationsystem.types.TypeMapper; import org.gcube.informationsystem.types.annotations.Abstract; import org.gcube.informationsystem.types.annotations.Final; @@ -57,8 +58,8 @@ public class TypeImpl implements Type { DEFAULT_CHANGELOG_MAP_KEY_AS_STRING.put(Version.MINIMAL_VERSION_STRING, Version.MINIMAL_VERSION_DESCRIPTION); } - - protected Header header; + protected UUID uuid; + protected Metadata metadata; protected String name; protected String description; @@ -186,15 +187,25 @@ public class TypeImpl implements Type { } } - + @Override - public Header getHeader() { - return header; + public UUID getUUID() { + return uuid; } @Override - public void setHeader(Header header) { - this.header = header; + public void setUUID(UUID uuid) { + this.uuid = uuid; + } + + @Override + public Metadata getMetadata() { + return metadata; + } + + @Override + public void setMetadata(Metadata metadata) { + this.metadata = metadata; } @Override diff --git a/src/main/java/org/gcube/informationsystem/types/impl/entities/EntityTypeImpl.java b/src/main/java/org/gcube/informationsystem/types/impl/entities/EntityTypeImpl.java index 4aa1c7f..501c134 100644 --- a/src/main/java/org/gcube/informationsystem/types/impl/entities/EntityTypeImpl.java +++ b/src/main/java/org/gcube/informationsystem/types/impl/entities/EntityTypeImpl.java @@ -11,7 +11,7 @@ import org.gcube.informationsystem.base.reference.entities.EntityElement; import org.gcube.informationsystem.contexts.reference.entities.Context; import org.gcube.informationsystem.model.reference.entities.Facet; import org.gcube.informationsystem.model.reference.entities.Resource; -import org.gcube.informationsystem.model.reference.properties.Header; +import org.gcube.informationsystem.model.reference.properties.Metadata; import org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate; import org.gcube.informationsystem.serialization.ElementMapper; import org.gcube.informationsystem.types.impl.TypeImpl; @@ -91,16 +91,16 @@ public class EntityTypeImpl extends TypeImpl implements EntityType { * We need to copy them. */ - protected Header header; + protected Metadata metadata; @Override - public Header getHeader() { - return header; + public Metadata getMetadata() { + return metadata; } @Override - public void setHeader(Header header){ - this.header = header; + public void setMetadata(Metadata metadata){ + this.metadata = metadata; } @Override @@ -111,7 +111,7 @@ public class EntityTypeImpl extends TypeImpl implements EntityType { return stringWriter.toString(); }catch(Exception e){ try { - ElementMapper.marshal(this.header, stringWriter); + ElementMapper.marshal(this.metadata, stringWriter); return stringWriter.toString(); } catch(Exception e1){ return super.toString(); diff --git a/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyTypeImpl.java b/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyTypeImpl.java index bb5c9bf..cb2740e 100644 --- a/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyTypeImpl.java +++ b/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyTypeImpl.java @@ -83,7 +83,7 @@ public final class PropertyTypeImpl

extends TypeImpl return stringWriter.toString(); }catch(Exception e){ try { - ElementMapper.marshal(this.header, stringWriter); + ElementMapper.marshal(this.metadata, stringWriter); return stringWriter.toString(); } catch(Exception e1){ return super.toString(); diff --git a/src/main/java/org/gcube/informationsystem/types/impl/relations/RelationTypeImpl.java b/src/main/java/org/gcube/informationsystem/types/impl/relations/RelationTypeImpl.java index 8cdea4d..9293b75 100644 --- a/src/main/java/org/gcube/informationsystem/types/impl/relations/RelationTypeImpl.java +++ b/src/main/java/org/gcube/informationsystem/types/impl/relations/RelationTypeImpl.java @@ -167,7 +167,7 @@ public class RelationTypeImpl return stringWriter.toString(); }catch(Exception e){ try { - ElementMapper.marshal(this.header, stringWriter); + ElementMapper.marshal(this.metadata, stringWriter); return stringWriter.toString(); } catch(Exception e1){ return super.toString(); diff --git a/src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyType.java b/src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyType.java index 70e805c..32bfe4b 100644 --- a/src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyType.java +++ b/src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyType.java @@ -6,7 +6,7 @@ import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties; import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.gcube.informationsystem.base.reference.IdentifiableElement; import org.gcube.informationsystem.base.reference.properties.PropertyElement; -import org.gcube.informationsystem.model.reference.properties.Header; +import org.gcube.informationsystem.model.reference.properties.Metadata; import org.gcube.informationsystem.types.annotations.Final; import org.gcube.informationsystem.types.annotations.ISProperty; import org.gcube.informationsystem.types.impl.properties.PropertyTypeImpl; @@ -27,10 +27,10 @@ public interface PropertyType

extends PropertyElement public static final String NAME = "PropertyType"; // PropertyTypeDefinition.class.getSimpleName(); - @ISProperty(name=IdentifiableElement.HEADER_PROPERTY, mandatory=true, nullable=false) - public Header getHeader(); + @ISProperty(name=IdentifiableElement.METADATA_PROPERTY, mandatory=true, nullable=false) + public Metadata getMetadata(); - public void setHeader(Header header); + public void setMetadata(Metadata metadata); /* TypeDefinition is just a Java useful class. The type is not created in the IS. Hence the fields must be redefined */ diff --git a/src/main/java/org/gcube/informationsystem/utils/UUIDManager.java b/src/main/java/org/gcube/informationsystem/utils/UUIDManager.java index a583580..bb6a8f3 100644 --- a/src/main/java/org/gcube/informationsystem/utils/UUIDManager.java +++ b/src/main/java/org/gcube/informationsystem/utils/UUIDManager.java @@ -10,8 +10,17 @@ import java.util.UUID; */ public final class UUIDManager { - public static final Set RESERVED_UUID_STRING; - public static final Set RESERVED_UUID; + private static final Set RESERVED_UUID_STRING; + private static final Set RESERVED_UUID; + + private static UUIDManager uuidManager; + + public static UUIDManager getInstance() { + if(uuidManager==null) { + uuidManager = new UUIDManager(); + } + return uuidManager; + } private UUIDManager() { @@ -31,27 +40,29 @@ public final class UUIDManager { } } - public static boolean isReservedUUID(UUID uuid) { + public boolean isReservedUUID(UUID uuid) { return RESERVED_UUID.contains(uuid); } - public static boolean isReservedUUID(String uuid) { + public boolean isReservedUUID(String uuid) { return RESERVED_UUID_STRING.contains(uuid); } - public static Set getAllReservedUUIDAsStrings(){ + public Set getAllReservedUUIDAsStrings(){ return new TreeSet<>(RESERVED_UUID_STRING); } - public static Set getAllReservedUUID(){ + public Set getAllReservedUUID(){ return new TreeSet<>(RESERVED_UUID); } - public static UUID generateValidRandomUUID() { + public UUID generateValidRandomUUID() { UUID generated = UUID.randomUUID(); while(RESERVED_UUID.contains(generated)) { generated = UUID.randomUUID(); } return generated; } + + } diff --git a/src/main/java/org/gcube/informationsystem/utils/Utility.java b/src/main/java/org/gcube/informationsystem/utils/Utility.java index 47aeeac..67f0c85 100644 --- a/src/main/java/org/gcube/informationsystem/utils/Utility.java +++ b/src/main/java/org/gcube/informationsystem/utils/Utility.java @@ -9,8 +9,7 @@ import java.util.UUID; import org.gcube.com.fasterxml.jackson.core.JsonProcessingException; import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; -import org.gcube.informationsystem.model.reference.entities.Entity; -import org.gcube.informationsystem.model.reference.properties.Header; +import org.gcube.informationsystem.base.reference.IdentifiableElement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,14 +21,13 @@ public class Utility { private static Logger logger = LoggerFactory.getLogger(Utility.class); public static UUID getUUIDFromJsonNode(JsonNode jsonNode){ - JsonNode header = jsonNode.get(Entity.HEADER_PROPERTY); - UUID uuid = UUID.fromString(header.get(Header.UUID_PROPERTY).asText()); + UUID uuid = UUID.fromString(jsonNode.get(IdentifiableElement.UUID_PROPERTY).asText()); logger.trace("UUID got from {} is : {} ", jsonNode.toString(), uuid); return uuid; } public static UUID getUUIDFromJSONString(String json) throws JsonProcessingException, IOException { - logger.trace("Trying to get UUID from {} of {} ", Header.class.getSimpleName(), json); + logger.trace("Trying to get UUID of {} ", json); JsonNode jsonNode = getJSONNode(json); return getUUIDFromJsonNode(jsonNode); } diff --git a/src/test/java/org/gcube/informationsystem/ContextTest.java b/src/test/java/org/gcube/informationsystem/ContextTest.java index 2f32ff6..d6b405f 100644 --- a/src/test/java/org/gcube/informationsystem/ContextTest.java +++ b/src/test/java/org/gcube/informationsystem/ContextTest.java @@ -15,7 +15,7 @@ import org.gcube.common.authorization.utils.secret.SecretUtility; import org.gcube.common.keycloak.KeycloakClientFactory; import org.gcube.common.keycloak.model.TokenResponse; import org.gcube.common.scope.api.ScopeProvider; -import org.gcube.informationsystem.model.reference.properties.Header; +import org.gcube.informationsystem.model.reference.properties.Metadata; import org.junit.AfterClass; import org.junit.BeforeClass; import org.slf4j.Logger; @@ -112,7 +112,7 @@ public class ContextTest { } public static String getUser() { - String user = Header.UNKNOWN_USER; + String user = Metadata.UNKNOWN_USER; try { user = SecretManagerProvider.instance.get().getUser().getUsername(); } catch(Exception e) { diff --git a/src/test/java/org/gcube/informationsystem/model/impl/properties/HeaderTest.java b/src/test/java/org/gcube/informationsystem/model/impl/properties/HeaderTest.java deleted file mode 100644 index 97b47d5..0000000 --- a/src/test/java/org/gcube/informationsystem/model/impl/properties/HeaderTest.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.gcube.informationsystem.model.impl.properties; - -import java.io.IOException; -import java.util.Calendar; -import java.util.Date; -import java.util.List; -import java.util.UUID; - -import org.gcube.com.fasterxml.jackson.core.JsonParseException; -import org.gcube.com.fasterxml.jackson.databind.JsonMappingException; -import org.gcube.informationsystem.model.reference.properties.Header; -import org.gcube.informationsystem.model.reference.properties.Property; -import org.gcube.informationsystem.serialization.ElementMapper; -import org.junit.Assert; -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Luca Frosini (ISTI - CNR) - */ -public class HeaderTest { - - private static Logger logger = LoggerFactory.getLogger(HeaderTest.class); - - @Test - public void headerTest() throws Exception { - HeaderImpl header = new HeaderImpl(UUID.randomUUID()); - Date date = Calendar.getInstance().getTime(); - header.creationTime = date; - header.lastUpdateTime = date; - header.createdBy = Header.UNKNOWN_USER; - - String json = ElementMapper.marshal(header); - logger.debug(json); - - - Property property = ElementMapper.unmarshal(Property.class, json); - Assert.assertTrue(property instanceof Header); - Assert.assertTrue(((Header) property).getCreationTime().compareTo(date)==0); - Assert.assertTrue(((Header) property).getLastUpdateTime().compareTo(date)==0); - logger.debug(ElementMapper.marshal(property)); - - Header h = ElementMapper.unmarshal(Header.class, json); - Assert.assertTrue(property instanceof Header); - Assert.assertTrue(h.getCreationTime().compareTo(date)==0); - Assert.assertTrue(h.getLastUpdateTime().compareTo(date)==0); - logger.debug(ElementMapper.marshal(h)); - } - - @Test - public void testContextsInHeader() throws JsonParseException, JsonMappingException, IOException { - - String headerJson = "{\"@class\":\"Header\",\"uuid\":\"cee84aaf-030c-4170-b554-836e7df3f611\",\"creator\":\"UNKNOWN_USER\",\"modifiedBy\":null,\"creationTime\":\"2020-11-09 10:01:25.415 +0000\",\"lastUpdateTime\":\"2020-11-09 10:01:25.415 +0000\",\"contexts\":[\"167114e0-9027-4e9e-83af-57973a8f8f08\",\"bad5f350-345c-11e9-9f49-cef9b1608c3f\"]}"; - - Property property = ElementMapper.unmarshal(Property.class, headerJson); - logger.debug("{}", property); - - Header h = ElementMapper.unmarshal(Header.class, headerJson); - logger.debug("{}", h); - - @SuppressWarnings("unchecked") - List contexts = (List) h.getAdditionalProperty(Header.__CONTEXTS); - logger.debug("Contexts UUIDs are {}", contexts); - } - -} diff --git a/src/test/java/org/gcube/informationsystem/model/impl/properties/MetadataTest.java b/src/test/java/org/gcube/informationsystem/model/impl/properties/MetadataTest.java new file mode 100644 index 0000000..8b4349c --- /dev/null +++ b/src/test/java/org/gcube/informationsystem/model/impl/properties/MetadataTest.java @@ -0,0 +1,77 @@ +package org.gcube.informationsystem.model.impl.properties; + +import java.io.IOException; +import java.util.Calendar; +import java.util.Date; +import java.util.Map; + +import org.gcube.com.fasterxml.jackson.core.JsonParseException; +import org.gcube.com.fasterxml.jackson.databind.JsonMappingException; +import org.gcube.informationsystem.model.reference.properties.Metadata; +import org.gcube.informationsystem.model.reference.properties.Property; +import org.gcube.informationsystem.serialization.ElementMapper; +import org.junit.Assert; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author Luca Frosini (ISTI - CNR) + */ +public class MetadataTest { + + private static Logger logger = LoggerFactory.getLogger(MetadataTest.class); + + @Test + public void metadataTest() throws Exception { + MetadataImpl metadata = new MetadataImpl(); + Date date = Calendar.getInstance().getTime(); + metadata.creationTime = date; + metadata.lastUpdateTime = date; + metadata.createdBy = Metadata.UNKNOWN_USER; + metadata.lastUpdateBy = Metadata.UNKNOWN_USER; + + String json = ElementMapper.marshal(metadata); + logger.debug(json); + + + Property property = ElementMapper.unmarshal(Property.class, json); + Assert.assertTrue(property instanceof Metadata); + Assert.assertTrue(((Metadata) property).getCreationTime().compareTo(date)==0); + Assert.assertTrue(((Metadata) property).getLastUpdateTime().compareTo(date)==0); + logger.debug(ElementMapper.marshal(property)); + + Metadata h = ElementMapper.unmarshal(Metadata.class, json); + Assert.assertTrue(property instanceof Metadata); + Assert.assertTrue(h.getCreationTime().compareTo(date)==0); + Assert.assertTrue(h.getLastUpdateTime().compareTo(date)==0); + logger.debug(ElementMapper.marshal(h)); + } + + @Test + public void testContextsInMetadata() throws JsonParseException, JsonMappingException, IOException { + + String metadataJson = + "{" + + "\"@class\":\"Metadata\"," + + "\"createdBy\":\"UNKNOWN_USER\"," + + "\"lastUpdateBy\":\"UNKNOWN_USER\"," + + "\"creationTime\":\"2020-11-09 10:01:25.415 +0000\"," + + "\"lastUpdateTime\":\"2020-11-09 10:01:25.415 +0000\"," + + "\"contexts\": {" + + "\"bad5f350-345c-11e9-9f49-cef9b1608c3f\": \"/gcube/devNext/NextNext\"" + + "}" + + "}"; + + Property property = ElementMapper.unmarshal(Property.class, metadataJson); + logger.debug("{}", property); + + Metadata h = ElementMapper.unmarshal(Metadata.class, metadataJson); + logger.debug("{}", h); + + @SuppressWarnings("unchecked") + Map contexts = (Map) h.getAdditionalProperty(Metadata.__CONTEXTS); + logger.debug("Contexts UUIDs are {}", contexts); + } + +} diff --git a/src/test/java/org/gcube/informationsystem/model/impl/properties/PropagationConstraintTest.java b/src/test/java/org/gcube/informationsystem/model/impl/properties/PropagationConstraintTest.java index 1cfcf5d..5e8500b 100644 --- a/src/test/java/org/gcube/informationsystem/model/impl/properties/PropagationConstraintTest.java +++ b/src/test/java/org/gcube/informationsystem/model/impl/properties/PropagationConstraintTest.java @@ -1,7 +1,6 @@ package org.gcube.informationsystem.model.impl.properties; import java.util.Calendar; -import java.util.UUID; import org.gcube.informationsystem.base.reference.Element; import org.gcube.informationsystem.model.reference.entities.Facet; @@ -116,48 +115,38 @@ public class PropagationConstraintTest { "}"; logger.debug(pcString); - HeaderImpl header = new HeaderImpl(); - header.setUUID(UUID.randomUUID()); - header.createdBy = "luca.frosini"; - header.lastUpdateBy = "luca.frosini"; - header.creationTime = Calendar.getInstance().getTime(); - header.lastUpdateTime = Calendar.getInstance().getTime(); + MetadataImpl metadata = new MetadataImpl(); + metadata.createdBy = "luca.frosini"; + metadata.lastUpdateBy = "luca.frosini"; + metadata.creationTime = Calendar.getInstance().getTime(); + metadata.lastUpdateTime = Calendar.getInstance().getTime(); - String hString = ElementMapper.marshal(header); + String hString = ElementMapper.marshal(metadata); String consistsOfString = "{" + "\"" + Element.CLASS_PROPERTY + "\":\"" + ConsistsOf.NAME + "\"," + "\"" + ConsistsOf.PROPAGATION_CONSTRAINT_PROPERTY + "\":"+ pcString + "," + - "\"" + ConsistsOf.HEADER_PROPERTY + "\": " + hString + "," + + "\"" + ConsistsOf.METADATA_PROPERTY + "\": " + hString + "," + "\"" + ConsistsOf.SOURCE_PROPERTY + "\":{" + + "\"@uuid\":\"4a971915-ca90-48cf-9975-63ee2dd28605\"," + "\"@class\":\"MyEService\"," + "\"@superClasses\":[\"EService\", \"Service\", \"Resource\"]," + - "\"header\":"+ "{" + - "\"@class\":\"Header\"," + - "\"uuid\":\"4a971915-ca90-48cf-9975-63ee2dd28605\"," + - "\"creator\":null, " + - "\"creationTime\":null, " + - "\"lastUpdateTime\":null}" + + "\"" + ConsistsOf.METADATA_PROPERTY + "\": " + hString + "}," + "\"" + ConsistsOf.TARGET_PROPERTY + "\":{" + + "\"@uuid\":\"3ace4bd0-e5cd-49a3-97a8-a0a9468ce6d4\"," + "\"@class\":\"MySoftwareFacet\"," + "\"@superClasses\":[\"SoftwareFacet\", \"Facet\"]," + - "\"header\":"+ "{" + - "\"@class\":\"Header\"," + - "\"uuid\":\"3ace4bd0-e5cd-49a3-97a8-a0a9468ce6d4\"," + - "\"creator\":null, " + - "\"creationTime\":null, " + - "\"lastUpdateTime\":null" + - "}" + - ",\"name\":\"WhnManager\"," + + "\"" + ConsistsOf.METADATA_PROPERTY + "\": " + hString + "," + + "\"name\":\"WhnManager\"," + "\"group\":\"VREManagement\"," + "\"version\":\"2.0.0-SNAPSHOT\"," + "\"description\":\"Web Hosting Node Service\"," + "\"qualifier\":null,\"optional\":false" + "}" + "}"; - logger.debug(consistsOfString); + logger.debug("--- {}", consistsOfString); @SuppressWarnings("unchecked") ConsistsOf consistsOf = ElementMapper.unmarshal(ConsistsOf.class, consistsOfString); diff --git a/src/test/java/org/gcube/informationsystem/types/EntitySchemaDefinition.java b/src/test/java/org/gcube/informationsystem/types/EntitySchemaDefinition.java index 4aec746..8c74b5b 100644 --- a/src/test/java/org/gcube/informationsystem/types/EntitySchemaDefinition.java +++ b/src/test/java/org/gcube/informationsystem/types/EntitySchemaDefinition.java @@ -6,7 +6,7 @@ package org.gcube.informationsystem.types; import org.gcube.informationsystem.base.reference.Element; import org.gcube.informationsystem.base.reference.properties.PropertyElement; import org.gcube.informationsystem.model.reference.entities.Resource; -import org.gcube.informationsystem.model.reference.properties.Header; +import org.gcube.informationsystem.model.reference.properties.Metadata; import org.gcube.informationsystem.model.reference.relations.IsRelatedTo; import org.junit.Test; import org.slf4j.Logger; @@ -21,7 +21,7 @@ public class EntitySchemaDefinition { @Test public void test() throws Exception { - Class clz = Header.class; + Class clz = Metadata.class; String json = TypeMapper.serializeType(clz); logger.trace(json); } diff --git a/src/test/java/org/gcube/informationsystem/types/SerializationTest.java b/src/test/java/org/gcube/informationsystem/types/SerializationTest.java index 9f9c19b..1c2f78f 100644 --- a/src/test/java/org/gcube/informationsystem/types/SerializationTest.java +++ b/src/test/java/org/gcube/informationsystem/types/SerializationTest.java @@ -8,10 +8,10 @@ import org.gcube.informationsystem.contexts.reference.relations.IsParentOf; import org.gcube.informationsystem.model.reference.entities.Entity; import org.gcube.informationsystem.model.reference.entities.Facet; import org.gcube.informationsystem.model.reference.entities.Resource; -import org.gcube.informationsystem.model.reference.properties.Header; +import org.gcube.informationsystem.model.reference.properties.Metadata; import org.gcube.informationsystem.model.reference.properties.PropagationConstraint; import org.gcube.informationsystem.model.reference.properties.Property; -import org.gcube.informationsystem.model.reference.properties.Vault; +import org.gcube.informationsystem.model.reference.properties.Encrypted; import org.gcube.informationsystem.model.reference.relations.ConsistsOf; import org.gcube.informationsystem.model.reference.relations.IsRelatedTo; import org.gcube.informationsystem.model.reference.relations.Relation; @@ -89,9 +89,9 @@ public class SerializationTest { logger.info(ElementMapper.marshal(property)); @SuppressWarnings("unchecked") - PropertyType

header = (PropertyType
) TypeMapper.createTypeDefinition(Header.class); - Assert.assertTrue(header.getAccessType()==AccessType.PROPERTY); - logger.info(ElementMapper.marshal(header)); + PropertyType metadataType = (PropertyType) TypeMapper.createTypeDefinition(Metadata.class); + Assert.assertTrue(metadataType.getAccessType()==AccessType.PROPERTY); + logger.info(ElementMapper.marshal(metadataType)); @SuppressWarnings("unchecked") PropertyType propagationConstraint = (PropertyType) TypeMapper.createTypeDefinition(PropagationConstraint.class); @@ -99,7 +99,7 @@ public class SerializationTest { logger.info(ElementMapper.marshal(propagationConstraint)); @SuppressWarnings("unchecked") - PropertyType vault = (PropertyType) TypeMapper.createTypeDefinition(Vault.class); + PropertyType vault = (PropertyType) TypeMapper.createTypeDefinition(Encrypted.class); Assert.assertTrue(vault.getAccessType()==AccessType.PROPERTY); logger.info(ElementMapper.marshal(vault)); @@ -198,19 +198,19 @@ public class SerializationTest { @Test public void testTypeSerialization() throws Exception { - String serialized = TypeMapper.serializeType(Header.class); + String serialized = TypeMapper.serializeType(Metadata.class); logger.info(serialized); @SuppressWarnings("unchecked") - PropertyType
propertyType = (PropertyType
) TypeMapper.deserializeTypeDefinition(serialized); + PropertyType propertyType = (PropertyType) TypeMapper.deserializeTypeDefinition(serialized); Version typeVersion = propertyType.getVersion(); logger.debug("Version {}", typeVersion.toString()); logger.info(ElementMapper.marshal(propertyType)); - String json = "{\"@class\":\"PropertyType\",\"header\":null,\"name\":\"Header\",\"description\":\"This class provides metadata per every IdentifiableElement\",\"superClasses\":[\"Property\"],\"properties\":[{\"@class\":\"PropertyDefinition\",\"name\":\"creationTime\",\"description\":\"Creation time. It represents the difference, measured in milliseconds, between the creation time and midnight, January 1, 1970, UTC.\",\"mandatory\":true,\"readonly\":true,\"notnull\":true,\"max\":null,\"min\":null,\"regexp\":null,\"type\":\"Date\"},{\"@class\":\"PropertyDefinition\",\"name\":\"lastUpdateTime\",\"description\":\"Last Update time. At creation time it assumes the same value of creationTime. It represents the difference, measured in milliseconds, between the creation time and midnight, January 1, 1970, UTC.\",\"mandatory\":true,\"readonly\":false,\"notnull\":true,\"max\":null,\"min\":null,\"regexp\":null,\"type\":\"Date\"},{\"@class\":\"PropertyDefinition\",\"name\":\"createdBy\",\"description\":\"The user that created the Entity or the Relation. It is initialized at creation time. \",\"mandatory\":true,\"readonly\":true,\"notnull\":true,\"max\":null,\"min\":null,\"regexp\":null,\"type\":\"String\"},{\"@class\":\"PropertyDefinition\",\"name\":\"uuid\",\"description\":\"This UUID is be used to identify the Entity or the Relation univocally.\",\"mandatory\":true,\"readonly\":true,\"notnull\":true,\"max\":null,\"min\":null,\"regexp\":\"^([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}){1}$\",\"type\":\"String\"},{\"@class\":\"PropertyDefinition\",\"name\":\"lastUpdateBy\",\"description\":\"The user that made the last update to the Entity or the Relation. At creation time, it assumes the same value of creator.\",\"mandatory\":true,\"readonly\":false,\"notnull\":true,\"max\":null,\"min\":null,\"regexp\":null,\"type\":\"String\"}],\"accessType\":\"PROPERTY\",\"abstract\":false,\"version\":\"1.0.0\",\"changelog\":{\"1.0.0\":\"First Version\"}}"; + String json = "{\"@class\":\"PropertyType\",\"metadata\":null,\"name\":\"Metadata\",\"description\":\"This class provides metadata per every IdentifiableElement\",\"superClasses\":[\"Property\"],\"properties\":[{\"@class\":\"PropertyDefinition\",\"name\":\"creationTime\",\"description\":\"Creation time. It represents the difference, measured in milliseconds, between the creation time and midnight, January 1, 1970, UTC.\",\"mandatory\":true,\"readonly\":true,\"notnull\":true,\"max\":null,\"min\":null,\"regexp\":null,\"type\":\"Date\"},{\"@class\":\"PropertyDefinition\",\"name\":\"lastUpdateTime\",\"description\":\"Last Update time. At creation time it assumes the same value of creationTime. It represents the difference, measured in milliseconds, between the creation time and midnight, January 1, 1970, UTC.\",\"mandatory\":true,\"readonly\":false,\"notnull\":true,\"max\":null,\"min\":null,\"regexp\":null,\"type\":\"Date\"},{\"@class\":\"PropertyDefinition\",\"name\":\"createdBy\",\"description\":\"The user that created the Entity or the Relation. It is initialized at creation time. \",\"mandatory\":true,\"readonly\":true,\"notnull\":true,\"max\":null,\"min\":null,\"regexp\":null,\"type\":\"String\"},{\"@class\":\"PropertyDefinition\",\"name\":\"uuid\",\"description\":\"This UUID is be used to identify the Entity or the Relation univocally.\",\"mandatory\":true,\"readonly\":true,\"notnull\":true,\"max\":null,\"min\":null,\"regexp\":\"^([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}){1}$\",\"type\":\"String\"},{\"@class\":\"PropertyDefinition\",\"name\":\"lastUpdateBy\",\"description\":\"The user that made the last update to the Entity or the Relation. At creation time, it assumes the same value of creator.\",\"mandatory\":true,\"readonly\":false,\"notnull\":true,\"max\":null,\"min\":null,\"regexp\":null,\"type\":\"String\"}],\"accessType\":\"PROPERTY\",\"abstract\":false,\"version\":\"1.0.0\",\"changelog\":{\"1.0.0\":\"First Version\"}}"; logger.info(json); @SuppressWarnings("unchecked") - PropertyType
headerType = (PropertyType
) TypeMapper.deserializeTypeDefinition(json); - logger.info(ElementMapper.marshal(headerType)); + PropertyType metadataType = (PropertyType) TypeMapper.deserializeTypeDefinition(json); + logger.info(ElementMapper.marshal(metadataType)); } diff --git a/src/test/java/org/gcube/informationsystem/types/TypeNameTest.java b/src/test/java/org/gcube/informationsystem/types/TypeNameTest.java index a8d423b..0b63c84 100644 --- a/src/test/java/org/gcube/informationsystem/types/TypeNameTest.java +++ b/src/test/java/org/gcube/informationsystem/types/TypeNameTest.java @@ -1,7 +1,7 @@ package org.gcube.informationsystem.types; -import org.gcube.informationsystem.model.reference.properties.Header; -import org.gcube.informationsystem.model.reference.properties.Vault; +import org.gcube.informationsystem.model.reference.properties.Metadata; +import org.gcube.informationsystem.model.reference.properties.Encrypted; import org.gcube.informationsystem.types.PropertyTypeName.BaseType; import org.junit.Assert; import org.junit.Test; @@ -17,7 +17,7 @@ public class TypeNameTest { @Test public void getBaseType() throws Exception { - Class clz = Header.class; + Class clz = Metadata.class; BaseType baseType = PropertyTypeName.getBaseTypeByClass(clz); logger.debug("{} for class {} is {}", BaseType.class.getSimpleName(), clz, baseType); } @@ -63,7 +63,7 @@ public class TypeNameTest { if(baseType.ordinal()>=BaseType.PROPERTY.ordinal()) { if(baseType == BaseType.PROPERTY) { stringBuffer = new StringBuffer(); - stringBuffer.append(Vault.NAME); + stringBuffer.append(Encrypted.NAME); checkPropertyTypeName(stringBuffer.toString(), baseType); } else { for(BaseType b : BaseType.values()) { @@ -79,7 +79,7 @@ public class TypeNameTest { } if(b == BaseType.PROPERTY) { - sb.append(Vault.NAME); + sb.append(Encrypted.NAME); } else { sb.append(b.toString()); } diff --git a/src/test/java/org/gcube/informationsystem/utils/UUIDManagerTest.java b/src/test/java/org/gcube/informationsystem/utils/UUIDManagerTest.java index 1ead5a1..9ef74ac 100644 --- a/src/test/java/org/gcube/informationsystem/utils/UUIDManagerTest.java +++ b/src/test/java/org/gcube/informationsystem/utils/UUIDManagerTest.java @@ -14,21 +14,23 @@ public class UUIDManagerTest { @Test public void testReservedUUID() { - Set allUUID = UUIDManager.getAllReservedUUID(); + UUIDManager uuidManager = UUIDManager.getInstance(); + + Set allUUID = uuidManager.getAllReservedUUID(); logger.debug("Reserved UUIDs are {}", allUUID); - Set allUUIDAsString = UUIDManager.getAllReservedUUIDAsStrings(); + Set allUUIDAsString = uuidManager.getAllReservedUUIDAsStrings(); Assert.assertTrue(allUUID.size()==allUUIDAsString.size()); Assert.assertTrue(allUUID.size()==16); Assert.assertTrue(allUUIDAsString.size()==16); for(UUID uuid : allUUID) { - Assert.assertTrue(UUIDManager.isReservedUUID(uuid)); - Assert.assertTrue(UUIDManager.isReservedUUID(uuid.toString())); + Assert.assertTrue(uuidManager.isReservedUUID(uuid)); + Assert.assertTrue(uuidManager.isReservedUUID(uuid.toString())); } for(String uuidString : allUUIDAsString) { - Assert.assertTrue(UUIDManager.isReservedUUID(UUID.fromString(uuidString))); - Assert.assertTrue(UUIDManager.isReservedUUID(uuidString)); + Assert.assertTrue(uuidManager.isReservedUUID(UUID.fromString(uuidString))); + Assert.assertTrue(uuidManager.isReservedUUID(uuidString)); } } diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml index 23cd12f..53d26fa 100644 --- a/src/test/resources/logback-test.xml +++ b/src/test/resources/logback-test.xml @@ -10,7 +10,7 @@ - +