From 74b3375473d1b05db9f4f19cead8a168d721ac4f Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Mon, 6 Feb 2023 18:58:41 +0100 Subject: [PATCH] discovery reorganization --- .../impl/GCubeModelRegistrationProvider.java | 11 +- ...tionsystem.discovery.RegistrationProvider} | 0 .../model/DiscoveryTest.java | 36 +++++ .../model/ISMDiscoveryTest.java | 131 ------------------ .../entities/facets/AccessPointFacetTest.java | 2 +- .../entities/facets/ActionFacetTest.java | 2 +- .../entities/facets/ContactFacetImplTest.java | 2 +- .../entities/facets/PolymorphismTest.java | 2 +- .../reference/entities/facets/Serializer.java | 2 +- 9 files changed, 47 insertions(+), 141 deletions(-) rename src/main/resources/META-INF/services/{org.gcube.informationsystem.utils.discovery.RegistrationProvider => org.gcube.informationsystem.discovery.RegistrationProvider} (100%) create mode 100644 src/test/java/org/gcube/resourcemanagement/model/DiscoveryTest.java delete mode 100644 src/test/java/org/gcube/resourcemanagement/model/ISMDiscoveryTest.java diff --git a/src/main/java/org/gcube/resourcemanagement/model/impl/GCubeModelRegistrationProvider.java b/src/main/java/org/gcube/resourcemanagement/model/impl/GCubeModelRegistrationProvider.java index 889ffbd..49303c8 100644 --- a/src/main/java/org/gcube/resourcemanagement/model/impl/GCubeModelRegistrationProvider.java +++ b/src/main/java/org/gcube/resourcemanagement/model/impl/GCubeModelRegistrationProvider.java @@ -1,9 +1,10 @@ package org.gcube.resourcemanagement.model.impl; -import java.util.ArrayList; -import java.util.List; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; -import org.gcube.informationsystem.utils.discovery.RegistrationProvider; +import org.gcube.informationsystem.discovery.RegistrationProvider; import org.gcube.resourcemanagement.model.reference.entities.facets.SoftwareFacet; import org.gcube.resourcemanagement.model.reference.entities.resources.EService; import org.gcube.resourcemanagement.model.reference.properties.ValueSchema; @@ -18,8 +19,8 @@ public class GCubeModelRegistrationProvider implements RegistrationProvider { public static final String GCUBE_MODEL_NAME = "gCube Model"; @Override - public List getPackagesToRegister() { - List packages = new ArrayList<>(); + public Collection getPackagesToRegister() { + Set packages = new HashSet<>(); packages.add(ValueSchema.class.getPackage()); packages.add(SoftwareFacet.class.getPackage()); packages.add(EService.class.getPackage()); diff --git a/src/main/resources/META-INF/services/org.gcube.informationsystem.utils.discovery.RegistrationProvider b/src/main/resources/META-INF/services/org.gcube.informationsystem.discovery.RegistrationProvider similarity index 100% rename from src/main/resources/META-INF/services/org.gcube.informationsystem.utils.discovery.RegistrationProvider rename to src/main/resources/META-INF/services/org.gcube.informationsystem.discovery.RegistrationProvider diff --git a/src/test/java/org/gcube/resourcemanagement/model/DiscoveryTest.java b/src/test/java/org/gcube/resourcemanagement/model/DiscoveryTest.java new file mode 100644 index 0000000..2c0b185 --- /dev/null +++ b/src/test/java/org/gcube/resourcemanagement/model/DiscoveryTest.java @@ -0,0 +1,36 @@ +package org.gcube.resourcemanagement.model; + +import org.gcube.informationsystem.base.reference.AccessType; +import org.gcube.informationsystem.base.reference.Element; +import org.gcube.informationsystem.discovery.knowledge.ModelKnowledge; +import org.gcube.informationsystem.tree.Tree; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author Luca Frosini (ISTI - CNR) + */ +public class DiscoveryTest { + + private static final Logger logger = LoggerFactory.getLogger(DiscoveryTest.class); + + + @Test + public void testDiscovery() throws Exception { + ModelKnowledge modelKnowledge = ModelKnowledge.getInstance(); + modelKnowledge.createKnowledge(); + + AccessType[] accessTypes = AccessType.getModelTypes(); + for(AccessType accessType : accessTypes) { + + Tree> classesTree = modelKnowledge.getClassesTree(accessType); + logger.info("Classes tree for {} is\n{}", accessType.getName(), classesTree.toString()); + +// Tree typesTree = modelKnowledge.getTypesTree(accessType); +// logger.info("Types tree for {} is\n{}", accessType.getName(), typesTree.toString()); + + } + } + +} diff --git a/src/test/java/org/gcube/resourcemanagement/model/ISMDiscoveryTest.java b/src/test/java/org/gcube/resourcemanagement/model/ISMDiscoveryTest.java deleted file mode 100644 index 6d9eca9..0000000 --- a/src/test/java/org/gcube/resourcemanagement/model/ISMDiscoveryTest.java +++ /dev/null @@ -1,131 +0,0 @@ -package org.gcube.resourcemanagement.model; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.ServiceLoader; - -import org.gcube.informationsystem.base.reference.AccessType; -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.types.TypeMapper; -import org.gcube.informationsystem.types.reference.Type; -import org.gcube.informationsystem.utils.Version; -import org.gcube.informationsystem.utils.discovery.ElementSpecilizationDiscovery; -import org.gcube.informationsystem.utils.discovery.RegistrationProvider; -import org.gcube.informationsystem.utils.discovery.SchemaAction; -import org.junit.Assert; -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Luca Frosini (ISTI - CNR) - */ -public class ISMDiscoveryTest { - - private static final Logger logger = LoggerFactory.getLogger(ISMDiscoveryTest.class); - - - private void checkType(Type type, Type expected) { - Assert.assertTrue(type.getName().compareTo(expected.getName())==0); - Assert.assertTrue(type.getVersion().compareTo(expected.getVersion())==0); - Assert.assertTrue(type.getDescription().compareTo(expected.getDescription())==0); - Assert.assertTrue(type.isAbstract() == expected.isAbstract()); - - Assert.assertTrue(type.getSuperClasses().containsAll(expected.getSuperClasses())); - Assert.assertTrue(expected.getSuperClasses().containsAll(type.getSuperClasses())); - - - Map typeChangelog = type.getChangelog(); - Map typeManagedChangelog = expected.getChangelog(); - - Assert.assertTrue(typeChangelog.keySet().containsAll(typeManagedChangelog.keySet())); - Assert.assertTrue(typeManagedChangelog.keySet().containsAll(typeChangelog.keySet())); - - for(Version typeVersion : typeChangelog.keySet()) { - Assert.assertTrue(typeChangelog.get(typeVersion).compareTo(typeManagedChangelog.get(typeVersion))==0); - } - - if(type.getProperties()!=null || expected.getProperties()!=null) { - Assert.assertTrue(type.getProperties().containsAll(expected.getProperties())); - Assert.assertTrue(expected.getProperties().containsAll(type.getProperties())); - } - } - - @Test - public void test() throws Exception { - - List packages = new ArrayList(); - - Class tdClz = Type.class; - packages.add(tdClz.getPackage()); - - AccessType[] accessTypes = AccessType.values(); - for(AccessType accessType : accessTypes) { - Class clz = accessType.getTypeClass(); - packages.add(clz.getPackage()); - } - - ServiceLoader regsitrationProviders = ServiceLoader - .load(RegistrationProvider.class); - for(RegistrationProvider registrationProvider : regsitrationProviders) { - packages.addAll(registrationProvider.getPackagesToRegister()); - } - - SchemaAction schemaAction = new SchemaAction() { - - @Override - public > void manageRelationClass( - Class r) throws Exception { - if(r.isAssignableFrom(Type.class)) { - return; - } - Type type = TypeMapper.createTypeDefinition(r); - Assert.assertTrue(type.getName().compareTo(r.getSimpleName())==0); - - String typeDefinitionString = TypeMapper.serializeTypeDefinition(type); - logger.debug("{} {}", r.getSimpleName(), typeDefinitionString); - - Type deserilised = TypeMapper.deserializeTypeDefinition(typeDefinitionString); - checkType(type, deserilised); - } - - @Override - public

void managePropertyClass(Class

p) throws Exception { - if(p.isAssignableFrom(Type.class)) { - return; - } - Type type = TypeMapper.createTypeDefinition(p); - Assert.assertTrue(type.getName().compareTo(p.getSimpleName())==0); - - String typeDefinitionString = TypeMapper.serializeTypeDefinition(type); - logger.debug("{} {}", p.getSimpleName(), typeDefinitionString); - - Type deserilised = TypeMapper.deserializeTypeDefinition(typeDefinitionString); - - checkType(type, deserilised); - } - - @Override - public void manageEntityClass(Class e) throws Exception { - if(e.isAssignableFrom(Type.class)) { - return; - } - Type type = TypeMapper.createTypeDefinition(e); - Assert.assertTrue(type.getName().compareTo(e.getSimpleName())==0); - - String typeDefinitionString = TypeMapper.serializeTypeDefinition(type); - logger.debug("{} {}", e.getSimpleName(), typeDefinitionString); - - Type deserilised = TypeMapper.deserializeTypeDefinition(typeDefinitionString); - - checkType(type, deserilised); - } - }; - - ElementSpecilizationDiscovery.manageISM(schemaAction , packages); - } -} diff --git a/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/AccessPointFacetTest.java b/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/AccessPointFacetTest.java index 83b4cec..fd55aa6 100644 --- a/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/AccessPointFacetTest.java +++ b/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/AccessPointFacetTest.java @@ -5,11 +5,11 @@ import java.net.URI; import org.gcube.informationsystem.base.reference.Element; import org.gcube.informationsystem.model.impl.properties.EncryptedImpl; import org.gcube.informationsystem.model.reference.properties.Encrypted; +import org.gcube.informationsystem.serialization.ElementMapper; import org.gcube.informationsystem.types.PropertyTypeName.BaseType; import org.gcube.informationsystem.types.TypeMapper; import org.gcube.informationsystem.types.reference.Type; import org.gcube.informationsystem.types.reference.properties.PropertyDefinition; -import org.gcube.informationsystem.utils.ElementMapper; import org.gcube.resourcemanagement.model.impl.entities.facets.AccessPointFacetImpl; import org.gcube.resourcemanagement.model.impl.properties.ValueSchemaImpl; import org.gcube.resourcemanagement.model.reference.properties.ValueSchema; diff --git a/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/ActionFacetTest.java b/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/ActionFacetTest.java index fe57f94..9a4d229 100644 --- a/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/ActionFacetTest.java +++ b/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/ActionFacetTest.java @@ -8,7 +8,7 @@ import java.util.HashSet; import java.util.Set; import org.gcube.com.fasterxml.jackson.core.JsonProcessingException; -import org.gcube.informationsystem.utils.ElementMapper; +import org.gcube.informationsystem.serialization.ElementMapper; import org.gcube.resourcemanagement.model.impl.entities.facets.ActionFacetImpl; import org.gcube.resourcemanagement.model.impl.properties.EnumStringPropertyImpl; import org.gcube.resourcemanagement.model.reference.properties.EnumStringProperty; diff --git a/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/ContactFacetImplTest.java b/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/ContactFacetImplTest.java index f894652..27a2f66 100644 --- a/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/ContactFacetImplTest.java +++ b/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/ContactFacetImplTest.java @@ -2,7 +2,7 @@ package org.gcube.resourcemanagement.model.reference.entities.facets; import java.io.IOException; -import org.gcube.informationsystem.utils.ElementMapper; +import org.gcube.informationsystem.serialization.ElementMapper; import org.gcube.resourcemanagement.model.impl.entities.facets.ContactFacetImpl; import org.junit.Test; import org.slf4j.Logger; diff --git a/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/PolymorphismTest.java b/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/PolymorphismTest.java index 0dbf0e3..021e912 100644 --- a/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/PolymorphismTest.java +++ b/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/PolymorphismTest.java @@ -11,7 +11,7 @@ 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.relations.ConsistsOf; -import org.gcube.informationsystem.utils.ElementMapper; +import org.gcube.informationsystem.serialization.ElementMapper; import org.gcube.resourcemanagement.model.impl.entities.resources.EServiceImpl; import org.gcube.resourcemanagement.model.impl.entities.resources.HostingNodeImpl; import org.gcube.resourcemanagement.model.impl.relations.isrelatedto.ActivatesImpl; diff --git a/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/Serializer.java b/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/Serializer.java index 8397b3b..699e33e 100644 --- a/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/Serializer.java +++ b/src/test/java/org/gcube/resourcemanagement/model/reference/entities/facets/Serializer.java @@ -14,9 +14,9 @@ import org.gcube.informationsystem.model.impl.relations.ConsistsOfImpl; import org.gcube.informationsystem.model.reference.entities.Facet; import org.gcube.informationsystem.model.reference.entities.Resource; import org.gcube.informationsystem.model.reference.relations.ConsistsOf; +import org.gcube.informationsystem.serialization.ElementMapper; import org.gcube.informationsystem.types.TypeMapper; import org.gcube.informationsystem.types.reference.entities.FacetType; -import org.gcube.informationsystem.utils.ElementMapper; import org.gcube.informationsystem.utils.Version; import org.gcube.resourcemanagement.model.impl.entities.facets.CPUFacetImpl; import org.gcube.resourcemanagement.model.impl.entities.facets.ContactFacetImpl;