Fixed addtoContext and removeFromContext
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/information-system/resource-registry@141413 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
7cfce46fa4
commit
0bcdd8a260
|
@ -367,9 +367,8 @@ public abstract class RelationManagement<R extends Relation> {
|
|||
|
||||
public boolean reallyAddToContext() throws ContextException,
|
||||
ResourceRegistryException {
|
||||
|
||||
ContextUtility.addToActualContext(orientGraph, getEdge());
|
||||
|
||||
getEdge();
|
||||
|
||||
AddConstraint addConstraint = AddConstraint.unpropagate;
|
||||
|
||||
try {
|
||||
|
@ -390,17 +389,23 @@ public abstract class RelationManagement<R extends Relation> {
|
|||
Vertex target = edge.getVertex(Direction.IN);
|
||||
|
||||
switch (addConstraint) {
|
||||
case propagate:
|
||||
EntityManagement entityManagement = EntityManagement
|
||||
.getEntityManagement(orientGraph, target);
|
||||
entityManagement.reallyAddToContext();
|
||||
break;
|
||||
|
||||
case unpropagate:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
case propagate:
|
||||
/*
|
||||
* The relation must be added only in the case the target vertex
|
||||
* must be added. Otherwise we have a relation which point
|
||||
* to an entity outside of the context.
|
||||
*/
|
||||
ContextUtility.addToActualContext(orientGraph, getEdge());
|
||||
EntityManagement entityManagement = EntityManagement
|
||||
.getEntityManagement(orientGraph, target);
|
||||
entityManagement.reallyAddToContext();
|
||||
break;
|
||||
|
||||
case unpropagate:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -440,30 +445,35 @@ public abstract class RelationManagement<R extends Relation> {
|
|||
}
|
||||
|
||||
Vertex target = edge.getVertex(Direction.IN);
|
||||
|
||||
/*
|
||||
* In any removeConstraint value the relation MUSt be removed from
|
||||
* context to avoid to have edge having a source outside of the context.
|
||||
*/
|
||||
ContextUtility.removeFromActualContext(orientGraph, edge);
|
||||
|
||||
switch (removeConstraint) {
|
||||
case cascade:
|
||||
removeFromContextTargetVertex(target);
|
||||
break;
|
||||
|
||||
case cascadeWhenOrphan:
|
||||
Iterable<Edge> iterable = target.getEdges(Direction.IN);
|
||||
Iterator<Edge> iterator = iterable.iterator();
|
||||
if (iterator.hasNext()) {
|
||||
logger.trace(
|
||||
"{} point to {} which is not orphan. Giving {} directive, it will be not remove from current context.",
|
||||
edge, target, removeConstraint);
|
||||
} else {
|
||||
case cascade:
|
||||
removeFromContextTargetVertex(target);
|
||||
}
|
||||
break;
|
||||
|
||||
case keep:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
|
||||
case cascadeWhenOrphan:
|
||||
Iterable<Edge> iterable = target.getEdges(Direction.IN);
|
||||
Iterator<Edge> iterator = iterable.iterator();
|
||||
if (iterator.hasNext()) {
|
||||
logger.trace(
|
||||
"{} point to {} which is not orphan. Giving {} directive, it will be not remove from current context.",
|
||||
edge, target, removeConstraint);
|
||||
} else {
|
||||
removeFromContextTargetVertex(target);
|
||||
}
|
||||
break;
|
||||
|
||||
case keep:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
@ -279,7 +279,7 @@ public class MultiContextTest extends ScopedTest {
|
|||
resourceManagement.setUUID(eServiceUUID);
|
||||
resourceManagement.delete();
|
||||
} catch (ResourceNotFoundException e) {
|
||||
logger.debug("Resource with {} Not Found as Expected",
|
||||
logger.debug("Resource with {} Not Deleted as Expected",
|
||||
eServiceUUID);
|
||||
}
|
||||
|
||||
|
@ -297,6 +297,7 @@ public class MultiContextTest extends ScopedTest {
|
|||
resourceManagement.setUUID(eServiceUUID);
|
||||
deleted = resourceManagement.delete();
|
||||
Assert.assertTrue(deleted);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -11,9 +11,8 @@
|
|||
|
||||
<logger name="org.gcube" level="INFO" />
|
||||
<logger name="org.gcube.informationsystem" level="DEBUG" />
|
||||
<logger name="org.gcube.informationsystem.resourceregistry.context" level="INFO" />
|
||||
<logger name="org.gcube.informationsystem.resourceregistry.resources.utils" level="INFO" />
|
||||
<logger name="org.gcube.informationsystem.resourceregistry.resources.impl" level="TRACE" />
|
||||
<logger name="org.gcube.informationsystem.resourceregistry" level="DEBUG" />
|
||||
<logger name="org.gcube.informationsystem.resourceregistry.context" level="DEBUG" />
|
||||
<logger name="org.gcube.informationsystem.impl.utils.discovery" level="ERROR" />
|
||||
|
||||
<root level="WARN">
|
||||
|
|
Loading…
Reference in New Issue