diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/context/SecurityContext.java b/src/main/java/org/gcube/informationsystem/resourceregistry/context/SecurityContext.java index 4ef10bf..98a0d84 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/context/SecurityContext.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/context/SecurityContext.java @@ -49,7 +49,7 @@ public class SecurityContext { SecurityContext.allowSecurityContextRoles(oSecurity, orientVertex.getRecord(), context); - + Iterable iterable = vertex.getEdges(Direction.BOTH); Iterator iterator = iterable.iterator(); while (iterator.hasNext()) { @@ -57,7 +57,6 @@ public class SecurityContext { SecurityContext.allowSecurityContextRoles(oSecurity, edge.getRecord(), context); } - } public static void addToSecurityContext(OrientGraph orientGraph, Edge edge, @@ -66,7 +65,7 @@ public class SecurityContext { .getSecurity(); SecurityContext.addToSecurityContext(oSecurity, edge, context); } - + public static void addToSecurityContext(OSecurity oSecurity, Edge edge, UUID context) { OrientEdge orientEdge = (OrientEdge) edge; @@ -86,7 +85,7 @@ public class SecurityContext { SecurityContextMapper.PermissionMode.READER, SecurityContextMapper.SecurityType.ROLE, context)); - oDocument.save(); + // oDocument.save(); // oSecurity.allowRole(oDocument, ORestrictedOperation.ALLOW_ALL, // DEFAULT_WRITER_ROLE); @@ -96,7 +95,7 @@ public class SecurityContext { } public static void createSecurityContext(OrientGraph orientGraph, - UUID context, boolean commit) { + UUID context) { ODatabaseDocumentTx oDatabaseDocumentTx = orientGraph.getRawGraph(); OSecurity oSecurity = oDatabaseDocumentTx.getMetadata().getSecurity(); @@ -143,10 +142,8 @@ public class SecurityContext { readerUser.save(); logger.trace("{} created", readerUser); - if(commit){ - oDatabaseDocumentTx.commit(); - } - + oDatabaseDocumentTx.commit(); + logger.trace( "Security Context (roles and users) with UUID {} successfully created", context.toString()); diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/context/SecurityContextMapper.java b/src/main/java/org/gcube/informationsystem/resourceregistry/context/SecurityContextMapper.java index 33ca283..2d47268 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/context/SecurityContextMapper.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/context/SecurityContextMapper.java @@ -62,7 +62,7 @@ public abstract class SecurityContextMapper { if (created) { OrientGraph orientGraph = factory.getTx(); SecurityContext.createSecurityContext(orientGraph, - MANAGEMENT_SECURITY_CONTEXT_UUID, true); + MANAGEMENT_SECURITY_CONTEXT_UUID); getSecurityContextFactory(MANAGEMENT_SECURITY_CONTEXT_UUID, PermissionMode.READER); diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/resources/ContextManager.java b/src/main/java/org/gcube/informationsystem/resourceregistry/resources/ContextManager.java index 05a2b42..69a3f93 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/resources/ContextManager.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/resources/ContextManager.java @@ -16,14 +16,10 @@ import javax.ws.rs.core.MediaType; import org.gcube.informationsystem.resourceregistry.api.ContextManagement; import org.gcube.informationsystem.resourceregistry.api.exceptions.InternalException; -import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException; import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextCreationException; import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextException; import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextNotFoundException; -import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.FacetNotFoundException; -import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.ResourceNotFoundException; import org.gcube.informationsystem.resourceregistry.api.rest.ContextPath; -import org.gcube.informationsystem.resourceregistry.api.rest.EntityPath; import org.gcube.informationsystem.resourceregistry.resources.impl.ContextManagementImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,10 +42,7 @@ public class ContextManager { protected ContextManagement contextManager = new ContextManagementImpl(); /** - * e.g. PUT - * /resource-registry/context?name=myVRE&parentContextId=a2fe0030-7b3d - * -4617-ba37-532c0e4b778d - * + * e.g. PUT /resource-registry/context?name=myVRE&parentContextId=a2fe0030-7b3d-4617-ba37-532c0e4b778d * @param parentUUID * @param name * @return @@ -67,9 +60,7 @@ public class ContextManager { } /** - * e.g. DELETE - * /resource-registry/context/c0f314e7-2807-4241-a792-2a6c79ed4fd0 - * + * e.g. DELETE /resource-registry/context/c0f314e7-2807-4241-a792-2a6c79ed4fd0 * @param uuid * @return * @throws ContextException @@ -84,10 +75,7 @@ public class ContextManager { } /** - * e.g. POST - * /resource-registry/context/rename/c0f314e7-2807-4241-a792-2a6c79ed4fd0 - * ?name=newNameVRE - * + * e.g. POST /resource-registry/context/rename/c0f314e7-2807-4241-a792-2a6c79ed4fd0?name=newNameVRE * @param uuid * @param name * @return @@ -105,10 +93,7 @@ public class ContextManager { } /** - * e.g. POST - * /resource-registry/context/move/c0f314e7-2807-4241-a792-2a6c79ed4fd0 - * ?parentContextId=68cf247a-b1ed-44cd-9d2e-c16d865bade7 - * + * e.g. POST /resource-registry/context/move/c0f314e7-2807-4241-a792-2a6c79ed4fd0?parentContextId=68cf247a-b1ed-44cd-9d2e-c16d865bade7 * @param uuid * @param newParentUUID * @return @@ -128,18 +113,4 @@ public class ContextManager { UUID.fromString(uuid)); } - @POST - @Path("add/" + EntityPath.RESOURCE_PATH_PART + "/{" + ID_PATH_PARAM + "}") - public boolean addResourceToContext(String uuid) throws ResourceNotFoundException, - ContextNotFoundException, ResourceRegistryException { - return contextManager.addResourceToContext(UUID.fromString(uuid)); - } - - @POST - @Path("add/" + EntityPath.FACET_PATH_PART + "/{" + ID_PATH_PARAM + "}") - public boolean addFacetToContext(String uuid) throws FacetNotFoundException, - ContextNotFoundException, ResourceRegistryException { - return contextManager.addFacetToContext(UUID.fromString(uuid)); - } - } diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/resources/EntityManager.java b/src/main/java/org/gcube/informationsystem/resourceregistry/resources/EntityManager.java index 8a9df42..da4768c 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/resources/EntityManager.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/resources/EntityManager.java @@ -16,6 +16,7 @@ import org.gcube.informationsystem.model.relation.ConsistsOf; import org.gcube.informationsystem.model.relation.IsRelatedTo; import org.gcube.informationsystem.resourceregistry.api.EntityManagement; import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException; +import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextNotFoundException; import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.EntityException; import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.FacetNotFoundException; import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.ResourceNotFoundException; @@ -234,4 +235,19 @@ public class EntityManager { return entityManager.detachResource(UUID.fromString(relatedToUUID)); } + + @POST + @Path("add/" + EntityPath.RESOURCE_PATH_PART + "/{" + ID_PATH_PARAM + "}") + public boolean addResourceToContext(String uuid) throws ResourceNotFoundException, + ContextNotFoundException, ResourceRegistryException { + return entityManager.addResourceToContext(UUID.fromString(uuid)); + } + + @POST + @Path("add/" + EntityPath.FACET_PATH_PART + "/{" + ID_PATH_PARAM + "}") + public boolean addFacetToContext(String uuid) throws FacetNotFoundException, + ContextNotFoundException, ResourceRegistryException { + return entityManager.addFacetToContext(UUID.fromString(uuid)); + } + } diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/resources/impl/ContextManagementImpl.java b/src/main/java/org/gcube/informationsystem/resourceregistry/resources/impl/ContextManagementImpl.java index d8f3531..51b9c73 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/resources/impl/ContextManagementImpl.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/resources/impl/ContextManagementImpl.java @@ -131,7 +131,7 @@ public class ContextManagementImpl implements ContextManagement { throw new ContextCreationException(e.getMessage()); } - SecurityContext.createSecurityContext(orientGraph, uuid, true); + SecurityContext.createSecurityContext(orientGraph, uuid); OrientVertex context = orientGraph.addVertex("class:" + Context.NAME); diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/resources/impl/EntityManagementImpl.java b/src/main/java/org/gcube/informationsystem/resourceregistry/resources/impl/EntityManagementImpl.java index 30d3180..dc2c1b7 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/resources/impl/EntityManagementImpl.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/resources/impl/EntityManagementImpl.java @@ -28,9 +28,12 @@ import org.gcube.informationsystem.model.relation.IsRelatedTo; import org.gcube.informationsystem.model.relation.Relation; import org.gcube.informationsystem.resourceregistry.api.EntityManagement; import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException; +import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextException; +import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextNotFoundException; import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.FacetNotFoundException; import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.ResourceNotFoundException; import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaNotFoundException; +import org.gcube.informationsystem.resourceregistry.context.SecurityContextMapper; import org.gcube.informationsystem.resourceregistry.context.SecurityContextMapper.PermissionMode; import org.gcube.informationsystem.resourceregistry.resources.utils.ContextUtility; import org.gcube.informationsystem.resourceregistry.resources.utils.HeaderUtility; @@ -259,7 +262,7 @@ public class EntityManagementImpl implements EntityManagement { return map; } - private void createRelation(OrientGraph orientGraph, Vertex resource, JsonNode relationArray, + private void createRelations(OrientGraph orientGraph, Vertex resource, JsonNode relationArray, @SuppressWarnings("rawtypes") Class relation) throws FacetNotFoundException, ResourceNotFoundException, ResourceRegistryException { @@ -375,7 +378,7 @@ public class EntityManagementImpl implements EntityManagement { OrientVertex vertex = orientGraph.addVertex("class:" + entityType); - + Header entityHeader = getHeader(jsonNode); if (entityHeader != null) { vertex.setProperty(Entity.HEADER_PROPERTY, entityHeader); @@ -402,9 +405,9 @@ public class EntityManagementImpl implements EntityManagement { } } } - + ContextUtility.addToActualContext(orientGraph, vertex); - + vertex.save(); if (!deferredCommit) { @@ -418,7 +421,7 @@ public class EntityManagementImpl implements EntityManagement { return vertex; } catch (Exception e) { - if (orientGraph != null && !deferredCommit) { + if (orientGraph != null) { orientGraph.rollback(); } throw new ResourceRegistryException("Error Creating " + entityType @@ -522,11 +525,11 @@ public class EntityManagementImpl implements EntityManagement { throw new ResourceRegistryException(error, e); } } - + HeaderUtility.addHeader(edge, null); ContextUtility.addToActualContext(orientGraph, edge); - + ((OrientEdge) edge).save(); if (!deferredCommit) { @@ -838,13 +841,13 @@ public class EntityManagementImpl implements EntityManagement { String property = lowerCaseFirstCharacter(ConsistsOf.NAME); if (jsonNode.has(property)) { JsonNode jsonNodeArray = jsonNode.get(property); - createRelation(orientGraph, resource, jsonNodeArray, ConsistsOf.class); + createRelations(orientGraph, resource, jsonNodeArray, ConsistsOf.class); } property = lowerCaseFirstCharacter(IsRelatedTo.NAME); if (jsonNode.has(property)) { JsonNode jsonNodeArray = jsonNode.get(property); - createRelation(orientGraph, resource, jsonNodeArray, IsRelatedTo.class); + createRelations(orientGraph, resource, jsonNodeArray, IsRelatedTo.class); } orientGraph.commit(); @@ -934,5 +937,59 @@ public class EntityManagementImpl implements EntityManagement { } } } + + + protected boolean addEntityToContext(Class clz, + UUID uuid) throws FacetNotFoundException, + ResourceNotFoundException, ContextNotFoundException, + ResourceRegistryException { + + OrientGraph orientGraph = null; + try { + orientGraph = SecurityContextMapper.getSecurityContextFactory( + SecurityContextMapper.ADMIN_SECURITY_CONTEXT_UUID, + PermissionMode.WRITER).getTx(); + + Vertex vertex = getEntity(orientGraph, uuid, null, clz); + + UUID contextUUID = ContextUtility.addToActualContext(orientGraph, vertex); + + if (Resource.class.isAssignableFrom(clz)) { + Iterable facets = vertex.getVertices(Direction.OUT, + ConsistsOf.NAME); + for (Vertex facet : facets) { + ContextUtility.addToActualContext(orientGraph, facet); + } + } + + orientGraph.commit(); + logger.info("{} with UUID {} successfully added to actual Context with UUID {}", clz.getSimpleName(), + uuid, contextUUID); + return true; + } catch (Exception e) { + if (orientGraph != null) { + orientGraph.rollback(); + } + throw new ContextException(e.getMessage()); + } finally { + if (orientGraph != null) { + orientGraph.shutdown(); + } + } + } + + + @Override + public boolean addResourceToContext(UUID uuid) + throws ResourceNotFoundException, ContextNotFoundException, + ResourceRegistryException { + return addEntityToContext(Resource.class, uuid); + } + + @Override + public boolean addFacetToContext(UUID uuid) throws FacetNotFoundException, + ContextNotFoundException, ResourceRegistryException { + return addEntityToContext(Facet.class, uuid); + } } diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/resources/utils/ContextUtility.java b/src/main/java/org/gcube/informationsystem/resourceregistry/resources/utils/ContextUtility.java index 3a0d4a5..fce6855 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/resources/utils/ContextUtility.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/resources/utils/ContextUtility.java @@ -88,6 +88,7 @@ public abstract class ContextUtility { } public static Vertex getActualContextVertex() throws ContextNotFoundException, ContextException{ + OrientGraphNoTx orientGraphNoTx = null; try { String scope = getCurrentScope(); if(scope==null){ @@ -98,13 +99,18 @@ public abstract class ContextUtility { .getSecurityContextFactory( SecurityContextMapper.ADMIN_SECURITY_CONTEXT_UUID, PermissionMode.READER); - return ContextUtility.getContextVertexByFullName( - factory.getTx(), scope); + + orientGraphNoTx = factory.getNoTx(); + return ContextUtility.getContextVertexByFullName(orientGraphNoTx, scope); } catch (ContextNotFoundException e) { throw e; } catch (Exception e) { throw new ContextException( "Unable to restrive Context Vertex for current Context", e); + } finally{ + if(orientGraphNoTx!=null){ + orientGraphNoTx.shutdown(); + } } } @@ -177,7 +183,7 @@ public abstract class ContextUtility { } } - public static Vertex getContextVertexByFullName(OrientGraph orientGraph, + public static Vertex getContextVertexByFullName(OrientGraphNoTx orientGraphNoTx, String fullName) throws ContextNotFoundException { logger.trace("Going to get {} {} from full name '{}'", Context.NAME, Vertex.class.getSimpleName(), fullName); @@ -193,7 +199,7 @@ public abstract class ContextUtility { ; OSQLSynchQuery osqlSynchQuery = new OSQLSynchQuery( select); - Iterable vertexes = orientGraph.command(osqlSynchQuery) + Iterable vertexes = orientGraphNoTx.command(osqlSynchQuery) .execute(); if (vertexes == null || !vertexes.iterator().hasNext()) { diff --git a/src/test/java/org/gcube/informationsystem/resourceregistry/ContextManagerFactory.java b/src/test/java/org/gcube/informationsystem/resourceregistry/ContextManagerFactory.java index f5de6d0..00f2e88 100644 --- a/src/test/java/org/gcube/informationsystem/resourceregistry/ContextManagerFactory.java +++ b/src/test/java/org/gcube/informationsystem/resourceregistry/ContextManagerFactory.java @@ -3,12 +3,9 @@ package org.gcube.informationsystem.resourceregistry; import java.util.UUID; import org.gcube.informationsystem.resourceregistry.api.ContextManagement; -import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException; import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextCreationException; import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextException; import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextNotFoundException; -import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.FacetNotFoundException; -import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.ResourceNotFoundException; import org.glassfish.hk2.api.Factory; public class ContextManagerFactory implements Factory { @@ -52,23 +49,6 @@ public class ContextManagerFactory implements Factory { return "{}"; } - - @Override - public boolean addResourceToContext(UUID uuid) - throws ResourceNotFoundException, ContextNotFoundException, - ResourceRegistryException { - // TODO Auto-generated method stub - return false; - } - - - @Override - public boolean addFacetToContext(UUID uuid) - throws FacetNotFoundException, ContextNotFoundException, - ResourceRegistryException { - // TODO Auto-generated method stub - return false; - } }; diff --git a/src/test/java/org/gcube/informationsystem/resourceregistry/EntityManagementFactory.java b/src/test/java/org/gcube/informationsystem/resourceregistry/EntityManagementFactory.java index 9814e9f..5354331 100644 --- a/src/test/java/org/gcube/informationsystem/resourceregistry/EntityManagementFactory.java +++ b/src/test/java/org/gcube/informationsystem/resourceregistry/EntityManagementFactory.java @@ -4,6 +4,7 @@ import java.util.UUID; import org.gcube.informationsystem.resourceregistry.api.EntityManagement; import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException; +import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextNotFoundException; import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.FacetNotFoundException; import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.ResourceNotFoundException; import org.glassfish.hk2.api.Factory; @@ -103,6 +104,23 @@ public class EntityManagementFactory implements Factory { // TODO Auto-generated method stub return false; } + + @Override + public boolean addResourceToContext(UUID uuid) + throws ResourceNotFoundException, ContextNotFoundException, + ResourceRegistryException { + // TODO Auto-generated method stub + return false; + } + + + @Override + public boolean addFacetToContext(UUID uuid) + throws FacetNotFoundException, ContextNotFoundException, + ResourceRegistryException { + // TODO Auto-generated method stub + return false; + } }; } diff --git a/src/test/java/org/gcube/informationsystem/resourceregistry/resources/impl/ContextManagementImplTest.java b/src/test/java/org/gcube/informationsystem/resourceregistry/resources/impl/ContextManagementImplTest.java index 59fdefb..d3eb47b 100644 --- a/src/test/java/org/gcube/informationsystem/resourceregistry/resources/impl/ContextManagementImplTest.java +++ b/src/test/java/org/gcube/informationsystem/resourceregistry/resources/impl/ContextManagementImplTest.java @@ -245,14 +245,14 @@ public class ContextManagementImplTest { * contextManagementImpl.delete(gcube); */ - logger.debug("The DB should be now clean"); + //logger.debug("The DB should be now clean"); } @Test - public void removeDevContext() throws ContextNotFoundException, + public void removeContext() throws ContextNotFoundException, ContextException, InternalException { contextManagementImpl.delete(UUID - .fromString("4c39472d-3ee8-4da3-8a4f-53d06af4fd4b")); + .fromString("")); } diff --git a/src/test/java/org/gcube/informationsystem/resourceregistry/resources/impl/EntityManagementImplTest.java b/src/test/java/org/gcube/informationsystem/resourceregistry/resources/impl/EntityManagementImplTest.java index 814c793..7299fc5 100644 --- a/src/test/java/org/gcube/informationsystem/resourceregistry/resources/impl/EntityManagementImplTest.java +++ b/src/test/java/org/gcube/informationsystem/resourceregistry/resources/impl/EntityManagementImplTest.java @@ -4,13 +4,20 @@ package org.gcube.informationsystem.resourceregistry.resources.impl; import java.io.StringWriter; +import java.net.URI; +import java.net.URL; +import java.util.Calendar; import java.util.UUID; import org.codehaus.jettison.json.JSONObject; import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.informationsystem.impl.entity.facet.AccessPointFacetImpl; import org.gcube.informationsystem.impl.entity.facet.CPUFacetImpl; import org.gcube.informationsystem.impl.entity.facet.ContactFacetImpl; +import org.gcube.informationsystem.impl.entity.facet.EventFacetImpl; +import org.gcube.informationsystem.impl.entity.facet.LicenseFacetImpl; import org.gcube.informationsystem.impl.entity.facet.NetworkingFacetImpl; +import org.gcube.informationsystem.impl.entity.facet.ServiceStateFacetImpl; import org.gcube.informationsystem.impl.entity.facet.SoftwareFacetImpl; import org.gcube.informationsystem.impl.entity.resource.EServiceImpl; import org.gcube.informationsystem.impl.entity.resource.HostingNodeImpl; @@ -22,9 +29,13 @@ import org.gcube.informationsystem.model.embedded.Header; import org.gcube.informationsystem.model.entity.Entity; import org.gcube.informationsystem.model.entity.Facet; import org.gcube.informationsystem.model.entity.Resource; +import org.gcube.informationsystem.model.entity.facet.AccessPointFacet; import org.gcube.informationsystem.model.entity.facet.CPUFacet; import org.gcube.informationsystem.model.entity.facet.ContactFacet; +import org.gcube.informationsystem.model.entity.facet.EventFacet; +import org.gcube.informationsystem.model.entity.facet.LicenseFacet; import org.gcube.informationsystem.model.entity.facet.NetworkingFacet; +import org.gcube.informationsystem.model.entity.facet.ServiceStateFacet; import org.gcube.informationsystem.model.entity.facet.SoftwareFacet; import org.gcube.informationsystem.model.entity.resource.EService; import org.gcube.informationsystem.model.entity.resource.HostingNode; @@ -53,6 +64,45 @@ public class EntityManagementImplTest { entityManagementImpl = new EntityManagementImpl(); } + @Test + public void testCreateEService() throws Exception { + ScopeProvider.instance.set("/gcube/devNext"); + + EService eService = new EServiceImpl(); + + SoftwareFacet softwareFacet = new SoftwareFacetImpl(); + softwareFacet.setGroup("InformationSystem"); + softwareFacet.setName("resource-registry"); + softwareFacet.setVersion("1.1.0"); + IsIdentifiedBy isIdentifiedBy = new IsIdentifiedByImpl(eService, softwareFacet, null); + eService.addFacet(isIdentifiedBy); + + AccessPointFacet accessPointFacet = new AccessPointFacetImpl(); + accessPointFacet.setEndpoint(new URI("http://localhost")); + accessPointFacet.setEntryName("port1"); + eService.addFacet(accessPointFacet); + + EventFacet eventFacet = new EventFacetImpl(); + eventFacet.setDate(Calendar.getInstance().getTime()); + eventFacet.setValue("Created"); + eService.addFacet(eventFacet); + + ServiceStateFacet serviceStateFacet = new ServiceStateFacetImpl(); + serviceStateFacet.setValue("ready"); + eService.addFacet(serviceStateFacet); + + LicenseFacet licenseFacet = new LicenseFacetImpl(); + licenseFacet.setName("EUPL"); + licenseFacet.setTextURL(new URL("https://joinup.ec.europa.eu/community/eupl/og_page/european-union-public-licence-eupl-v11")); + eService.addFacet(licenseFacet); + + String json = entityManagementImpl.createResource(EService.NAME, Entities.marshal(eService)); + logger.debug("Created : {}", json); + eService = Entities.unmarshal(EService.class, json); + logger.debug("Unmarshalled {} {}", EService.NAME, eService); + } + + @Test public void testCreateReadDeleteFacet() throws Exception { ScopeProvider.instance.set("/gcube/devNext"); @@ -388,4 +438,5 @@ public class EntityManagementImplTest { //entityManagementImpl.deleteResource(resourceUUID); } + } diff --git a/src/test/java/org/gcube/informationsystem/resourceregistry/resources/impl/MultiContextTest.java b/src/test/java/org/gcube/informationsystem/resourceregistry/resources/impl/MultiContextTest.java index ed34310..972b185 100644 --- a/src/test/java/org/gcube/informationsystem/resourceregistry/resources/impl/MultiContextTest.java +++ b/src/test/java/org/gcube/informationsystem/resourceregistry/resources/impl/MultiContextTest.java @@ -25,7 +25,6 @@ import org.gcube.informationsystem.impl.relation.consistsof.HasVolatileMemoryImp import org.gcube.informationsystem.impl.relation.isrelatedto.HostsImpl; import org.gcube.informationsystem.impl.utils.Entities; import org.gcube.informationsystem.model.entity.Facet; -import org.gcube.informationsystem.model.entity.Resource; import org.gcube.informationsystem.model.entity.facet.AccessPointFacet; import org.gcube.informationsystem.model.entity.facet.CPUFacet; import org.gcube.informationsystem.model.entity.facet.EventFacet; @@ -57,26 +56,24 @@ public class MultiContextTest { private static Logger logger = LoggerFactory .getLogger(EntityManagementImplTest.class); - protected ContextManagementImpl contextManagementImpl; protected EntityManagementImpl entityManagementImpl; public MultiContextTest() { entityManagementImpl = new EntityManagementImpl(); - contextManagementImpl = new ContextManagementImpl(); } @Test - public void testCreateHostingNode() throws Exception { + public void testCreateEServiceHostingNode() throws Exception { ScopeProvider.instance.set("/gcube/devNext"); - + EService eService = new EServiceImpl(); SoftwareFacet softwareFacet = new SoftwareFacetImpl(); softwareFacet.setGroup("InformationSystem"); softwareFacet.setName("resource-registry"); softwareFacet.setVersion("1.1.0"); - IsIdentifiedBy isIdentifiedBy = new IsIdentifiedByImpl(eService, softwareFacet, null); + IsIdentifiedBy isIdentifiedBy = new IsIdentifiedByImpl(eService, softwareFacet, null); eService.addFacet(isIdentifiedBy); AccessPointFacet accessPointFacet = new AccessPointFacetImpl(); @@ -93,7 +90,6 @@ public class MultiContextTest { serviceStateFacet.setValue("ready"); eService.addFacet(serviceStateFacet); - LicenseFacet licenseFacet = new LicenseFacetImpl(); licenseFacet.setName("EUPL"); licenseFacet.setTextURL(new URL("https://joinup.ec.europa.eu/community/eupl/og_page/european-union-public-licence-eupl-v11")); @@ -105,6 +101,8 @@ public class MultiContextTest { logger.debug("Unmarshalled {} {}", EService.NAME, eService); + + /* ----- */ HostingNode hostingNode = new HostingNodeImpl(); @@ -116,8 +114,8 @@ public class MultiContextTest { networkingFacet.setMask("255.255.248.0"); networkingFacet.setBroadcastAddress("146.48.87.255"); - isIdentifiedBy = new IsIdentifiedByImpl(hostingNode, networkingFacet, null); - hostingNode.addFacet(isIdentifiedBy); + IsIdentifiedBy isIdentifiedByHNNF = new IsIdentifiedByImpl(hostingNode, networkingFacet, null); + hostingNode.addFacet(isIdentifiedByHNNF); CPUFacet cpuFacet = new CPUFacetImpl(); @@ -146,28 +144,24 @@ public class MultiContextTest { new HasPersistentMemoryImpl(hostingNode, disk, null); hostingNode.addFacet(hasPersistentMemory); - - Hosts hosts = new HostsImpl(hostingNode, eService, null); hostingNode.attachResource(hosts); - - json = entityManagementImpl.createResource(HostingNode.NAME, Entities.marshal(hostingNode)); - hostingNode = Entities.unmarshal(HostingNode.class, json); - logger.debug("Created : {}", json); - + String hnJson = entityManagementImpl.createResource(HostingNode.NAME, Entities.marshal(hostingNode)); + logger.debug("Created : {}", hnJson); + hostingNode = Entities.unmarshal(HostingNode.class, hnJson); + logger.debug("Unmarshalled {} {}", HostingNode.NAME, hostingNode); ScopeProvider.instance.set("/gcube/devNext/NextNext"); - contextManagementImpl.addResourceToContext(hostingNode.getHeader().getUUID()); - - + entityManagementImpl.addResourceToContext(hostingNode.getHeader().getUUID()); + } @Test public void addTest() throws ResourceNotFoundException, ContextNotFoundException, ResourceRegistryException{ - ScopeProvider.instance.set("/gcube/devsec"); - contextManagementImpl.addResourceToContext(UUID.fromString("36799dbc-e0df-463d-9895-861cc19a9442")); + ScopeProvider.instance.set("/gcube/devNext/NextNext"); + entityManagementImpl.addResourceToContext(UUID.fromString("75583599-c082-4b89-84ab-125e64d768c4")); } } diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml index b630562..b8c82c5 100644 --- a/src/test/resources/logback-test.xml +++ b/src/test/resources/logback-test.xml @@ -10,9 +10,9 @@ - - - + + +