discovery reorganization
This commit is contained in:
parent
898cdcf29e
commit
74b3375473
|
@ -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<Package> getPackagesToRegister() {
|
||||
List<Package> packages = new ArrayList<>();
|
||||
public Collection<Package> getPackagesToRegister() {
|
||||
Set<Package> packages = new HashSet<>();
|
||||
packages.add(ValueSchema.class.getPackage());
|
||||
packages.add(SoftwareFacet.class.getPackage());
|
||||
packages.add(EService.class.getPackage());
|
||||
|
|
|
@ -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<Class<Element>> classesTree = modelKnowledge.getClassesTree(accessType);
|
||||
logger.info("Classes tree for {} is\n{}", accessType.getName(), classesTree.toString());
|
||||
|
||||
// Tree<Type> typesTree = modelKnowledge.getTypesTree(accessType);
|
||||
// logger.info("Types tree for {} is\n{}", accessType.getName(), typesTree.toString());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -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<Version, String> typeChangelog = type.getChangelog();
|
||||
Map<Version, String> 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<Package> packages = new ArrayList<Package>();
|
||||
|
||||
Class<Type> tdClz = Type.class;
|
||||
packages.add(tdClz.getPackage());
|
||||
|
||||
AccessType[] accessTypes = AccessType.values();
|
||||
for(AccessType accessType : accessTypes) {
|
||||
Class<Element> clz = accessType.getTypeClass();
|
||||
packages.add(clz.getPackage());
|
||||
}
|
||||
|
||||
ServiceLoader<? extends RegistrationProvider> regsitrationProviders = ServiceLoader
|
||||
.load(RegistrationProvider.class);
|
||||
for(RegistrationProvider registrationProvider : regsitrationProviders) {
|
||||
packages.addAll(registrationProvider.getPackagesToRegister());
|
||||
}
|
||||
|
||||
SchemaAction schemaAction = new SchemaAction() {
|
||||
|
||||
@Override
|
||||
public <R extends RelationElement<? extends EntityElement, ? extends EntityElement>> void manageRelationClass(
|
||||
Class<R> 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 <P extends PropertyElement> void managePropertyClass(Class<P> 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 <E extends EntityElement> void manageEntityClass(Class<E> 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);
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue