Fixing ER deserialization and checks for element in different context
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/information-system/resource-registry@146431 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
f8ce50d91d
commit
5e7bb046c3
|
@ -31,9 +31,13 @@ import org.gcube.informationsystem.model.relation.IsRelatedTo;
|
||||||
import org.gcube.informationsystem.model.relation.Relation;
|
import org.gcube.informationsystem.model.relation.Relation;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
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.ContextException;
|
||||||
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.facet.FacetAvailableInAnotherContextException;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.facet.FacetNotFoundException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.facet.FacetNotFoundException;
|
||||||
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.resource.ResourceAvailableInAnotherContextException;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.resource.ResourceNotFoundException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.resource.ResourceNotFoundException;
|
||||||
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.er.ERAvailableInAnotherContextException;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.er.ERNotFoundException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.er.ERNotFoundException;
|
||||||
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.relation.RelationAvailableInAnotherContextException;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.relation.RelationNotFoundException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.relation.RelationNotFoundException;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaException;
|
||||||
import org.gcube.informationsystem.resourceregistry.context.ContextUtility;
|
import org.gcube.informationsystem.resourceregistry.context.ContextUtility;
|
||||||
|
@ -57,6 +61,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.node.JsonNodeType;
|
import com.fasterxml.jackson.databind.node.JsonNodeType;
|
||||||
|
import com.orientechnologies.orient.core.db.record.OTrackedList;
|
||||||
import com.orientechnologies.orient.core.metadata.OMetadata;
|
import com.orientechnologies.orient.core.metadata.OMetadata;
|
||||||
import com.orientechnologies.orient.core.metadata.schema.OClass;
|
import com.orientechnologies.orient.core.metadata.schema.OClass;
|
||||||
import com.orientechnologies.orient.core.metadata.schema.OProperty;
|
import com.orientechnologies.orient.core.metadata.schema.OProperty;
|
||||||
|
@ -73,7 +78,6 @@ import com.tinkerpop.blueprints.util.StringFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Luca Frosini (ISTI - CNR)
|
* @author Luca Frosini (ISTI - CNR)
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public abstract class ERManagement<ERType extends ER, El extends Element> {
|
public abstract class ERManagement<ERType extends ER, El extends Element> {
|
||||||
|
|
||||||
|
@ -224,10 +228,22 @@ public abstract class ERManagement<ERType extends ER, El extends Element> {
|
||||||
checkJSON();
|
checkJSON();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void getSchema() throws SchemaException {
|
protected OClass getOClass() throws SchemaException {
|
||||||
|
if(oClass==null){
|
||||||
|
if(element!=null){
|
||||||
|
OrientElement orientElement = (OrientElement) element;
|
||||||
|
OMetadata oMetadata = orientElement.getGraph().getRawGraph().getMetadata();
|
||||||
|
OSchema oSchema = oMetadata.getSchema();
|
||||||
|
String type = orientElement.getRecord().getClassName();
|
||||||
|
oClass = oSchema.getClass(type);
|
||||||
|
}else{
|
||||||
oClass = SchemaManagementImpl.getTypeSchema(erType, baseType);
|
oClass = SchemaManagementImpl.getTypeSchema(erType, baseType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return oClass;
|
||||||
|
}
|
||||||
|
|
||||||
public void setElementType(String erType) throws ResourceRegistryException {
|
public void setElementType(String erType) throws ResourceRegistryException {
|
||||||
this.erType = erType;
|
this.erType = erType;
|
||||||
if (erType == null || erType.compareTo("") == 0) {
|
if (erType == null || erType.compareTo("") == 0) {
|
||||||
|
@ -257,16 +273,14 @@ public abstract class ERManagement<ERType extends ER, El extends Element> {
|
||||||
try {
|
try {
|
||||||
uuid = org.gcube.informationsystem.impl.utils.Utility
|
uuid = org.gcube.informationsystem.impl.utils.Utility
|
||||||
.getUUIDFromJsonNode(jsonNode);
|
.getUUIDFromJsonNode(jsonNode);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {}
|
||||||
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
checkUUIDMatch();
|
checkUUIDMatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.erType == null) {
|
if (this.erType == null) {
|
||||||
this.erType = getClassProperty(jsonNode);
|
this.erType = getClassProperty(jsonNode);
|
||||||
getSchema();
|
getOClass();
|
||||||
} else {
|
} else {
|
||||||
checkERMatch();
|
checkERMatch();
|
||||||
}
|
}
|
||||||
|
@ -283,7 +297,7 @@ public abstract class ERManagement<ERType extends ER, El extends Element> {
|
||||||
throw new ResourceRegistryException(error);
|
throw new ResourceRegistryException(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
getSchema();
|
getOClass();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void checkUUIDMatch() throws ResourceRegistryException {
|
protected void checkUUIDMatch() throws ResourceRegistryException {
|
||||||
|
@ -341,8 +355,8 @@ public abstract class ERManagement<ERType extends ER, El extends Element> {
|
||||||
this.uuid = HeaderUtility.getHeader(element).getUUID();
|
this.uuid = HeaderUtility.getHeader(element).getUUID();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void throwElementNotFoundException(ResourceRegistryException e)
|
protected void throwElementNotFoundException(ERNotFoundException e)
|
||||||
throws ERNotFoundException, ResourceRegistryException {
|
throws ERNotFoundException {
|
||||||
|
|
||||||
if (Resource.class.isAssignableFrom(erTypeClass)) {
|
if (Resource.class.isAssignableFrom(erTypeClass)) {
|
||||||
throw new ResourceNotFoundException(e);
|
throw new ResourceNotFoundException(e);
|
||||||
|
@ -351,9 +365,21 @@ public abstract class ERManagement<ERType extends ER, El extends Element> {
|
||||||
} else if (Relation.class.isAssignableFrom(erTypeClass)) {
|
} else if (Relation.class.isAssignableFrom(erTypeClass)) {
|
||||||
throw new RelationNotFoundException(e);
|
throw new RelationNotFoundException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
throw e;
|
throw e;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void throwERAvailableInAnotherContextException(ERNotFoundException e)
|
||||||
|
throws ERAvailableInAnotherContextException {
|
||||||
|
|
||||||
|
if (Resource.class.isAssignableFrom(erTypeClass)) {
|
||||||
|
throw new ResourceAvailableInAnotherContextException(e);
|
||||||
|
} else if (Facet.class.isAssignableFrom(erTypeClass)) {
|
||||||
|
throw new FacetAvailableInAnotherContextException(e);
|
||||||
|
} else if (Relation.class.isAssignableFrom(erTypeClass)) {
|
||||||
|
throw new RelationAvailableInAnotherContextException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new ERAvailableInAnotherContextException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
public El getElement() throws ResourceRegistryException {
|
public El getElement() throws ResourceRegistryException {
|
||||||
|
@ -362,9 +388,24 @@ public abstract class ERManagement<ERType extends ER, El extends Element> {
|
||||||
element = Utility.getElementByUUID(orientGraph,
|
element = Utility.getElementByUUID(orientGraph,
|
||||||
erType == null ? baseType : erType, uuid, elementClass);
|
erType == null ? baseType : erType, uuid, elementClass);
|
||||||
}
|
}
|
||||||
} catch (ResourceRegistryException e) {
|
} catch (ERNotFoundException e) {
|
||||||
|
try{
|
||||||
|
Utility.getElementByUUIDAsAdmin(erType == null ? baseType : erType, uuid, elementClass);
|
||||||
|
throwERAvailableInAnotherContextException(e);
|
||||||
|
}catch (ERNotFoundException e1) {
|
||||||
|
// Using e not e1
|
||||||
throwElementNotFoundException(e);
|
throwElementNotFoundException(e);
|
||||||
|
} catch (ResourceRegistryException e1) {
|
||||||
|
throw e1;
|
||||||
|
} catch (Exception e1) {
|
||||||
|
throw new ResourceRegistryException(e);
|
||||||
}
|
}
|
||||||
|
} catch (ResourceRegistryException e) {
|
||||||
|
throw e;
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new ResourceRegistryException(e);
|
||||||
|
}
|
||||||
|
|
||||||
return element;
|
return element;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -393,9 +434,7 @@ public abstract class ERManagement<ERType extends ER, El extends Element> {
|
||||||
try {
|
try {
|
||||||
orientGraph = ContextUtility.getActualSecurityContextGraph(PermissionMode.READER);
|
orientGraph = ContextUtility.getActualSecurityContextGraph(PermissionMode.READER);
|
||||||
|
|
||||||
getElement();
|
if(getElement()==null){
|
||||||
|
|
||||||
if(element==null){
|
|
||||||
return false;
|
return false;
|
||||||
}else{
|
}else{
|
||||||
return true;
|
return true;
|
||||||
|
@ -733,51 +772,33 @@ public abstract class ERManagement<ERType extends ER, El extends Element> {
|
||||||
return element;
|
return element;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected Object getPropertyForJson(String key, Object object) throws ResourceRegistryException {
|
||||||
public JSONObject toJSONObject() throws ResourceRegistryException {
|
|
||||||
try {
|
try {
|
||||||
OrientElement orientElement = (OrientElement) element;
|
|
||||||
Map<String, Object> properties = orientElement.getProperties();
|
|
||||||
|
|
||||||
|
|
||||||
String type = orientElement.getRecord().getClassName();
|
|
||||||
OMetadata oMetadata = orientElement.getGraph().getRawGraph().getMetadata();
|
|
||||||
OSchema oSchema = oMetadata.getSchema();
|
|
||||||
OClass oClass = oSchema.getClass(type);
|
|
||||||
|
|
||||||
|
|
||||||
OUTER_FOR: for(String key : orientElement.getPropertyKeys()){
|
|
||||||
|
|
||||||
Object object = properties.get(key);
|
|
||||||
|
|
||||||
if(key.compareTo(ER.HEADER_PROPERTY)==0){
|
if(key.compareTo(ER.HEADER_PROPERTY)==0){
|
||||||
// Keep the header
|
// Keeping the header
|
||||||
HeaderOrient headerOrient = HeaderUtility.getHeaderOrient((ODocument) object);
|
HeaderOrient headerOrient = HeaderUtility.getHeaderOrient((ODocument) object);
|
||||||
JSONObject headerObject = new JSONObject(headerOrient.toJSON("class"));
|
JSONObject headerObject = new JSONObject(headerOrient.toJSON("class"));
|
||||||
properties.put(ER.HEADER_PROPERTY, headerObject);
|
return headerObject;
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ignoreKeys.contains(key)) {
|
if (ignoreKeys.contains(key)) {
|
||||||
properties.remove(key);
|
return null;
|
||||||
continue OUTER_FOR;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (String prefix : ignoreStartWithKeys) {
|
for (String prefix : ignoreStartWithKeys) {
|
||||||
if (key.startsWith(prefix)) {
|
if (key.startsWith(prefix)) {
|
||||||
properties.remove(key);
|
return null;
|
||||||
continue OUTER_FOR;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(object instanceof ODocument){
|
if(object instanceof ODocument){
|
||||||
String json = ((ODocument) object).toJSON("class");
|
String json = ((ODocument) object).toJSON("class");
|
||||||
JSONObject jsonObject = new JSONObject(json);
|
JSONObject jsonObject = new JSONObject(json);
|
||||||
properties.put(key, jsonObject);
|
return jsonObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(object instanceof Date){
|
if(object instanceof Date){
|
||||||
OProperty oProperty = oClass.getProperty(key);
|
OProperty oProperty = getOClass().getProperty(key);
|
||||||
OType oType = oProperty.getType();
|
OType oType = oProperty.getType();
|
||||||
DateFormat dateFormat = ODateHelper.getDateTimeFormatInstance();
|
DateFormat dateFormat = ODateHelper.getDateTimeFormatInstance();
|
||||||
switch (oType) {
|
switch (oType) {
|
||||||
|
@ -793,20 +814,32 @@ public abstract class ERManagement<ERType extends ER, El extends Element> {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
properties.put(key, dateFormat.format((Date) object));
|
return dateFormat.format((Date) object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(object instanceof OTrackedList){
|
||||||
|
OTrackedList<?> oTrackedList = (OTrackedList<?>) object;
|
||||||
|
|
||||||
|
JSONArray jsonArray = new JSONArray();
|
||||||
|
for(Object o : oTrackedList){
|
||||||
|
Object obj = getPropertyForJson("PLACEHOLDER", o);
|
||||||
|
jsonArray.put(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
return jsonArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
return object.toString();
|
||||||
|
|
||||||
|
}catch(Exception e){
|
||||||
|
throw new ResourceRegistryException("Error while serializing "
|
||||||
|
+ key + "=" + object.toString() + " in " + getElement().toString(), e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
JSONObject jsonObject = new JSONObject(properties);
|
protected Collection<String> getSuperclasses() throws SchemaException{
|
||||||
jsonObject.put(ISManageable.CLASS_PROPERTY, type);
|
Collection<OClass> allSuperClasses = getOClass().getAllSuperClasses();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Collection<String> superClasses = oClass.getSuperClassesNames();
|
|
||||||
|
|
||||||
Collection<OClass> allSuperClasses = oClass.getAllSuperClasses();
|
|
||||||
Collection<String> superClasses = new HashSet<>();
|
Collection<String> superClasses = new HashSet<>();
|
||||||
for(OClass oSuperClass : allSuperClasses){
|
for(OClass oSuperClass : allSuperClasses){
|
||||||
String name = oSuperClass.getName();
|
String name = oSuperClass.getName();
|
||||||
|
@ -818,13 +851,39 @@ public abstract class ERManagement<ERType extends ER, El extends Element> {
|
||||||
superClasses.add(name);
|
superClasses.add(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return superClasses;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public JSONObject toJSONObject() throws ResourceRegistryException {
|
||||||
|
try {
|
||||||
|
OrientElement orientElement = (OrientElement) getElement();
|
||||||
|
|
||||||
|
Map<String, Object> properties = orientElement.getProperties();
|
||||||
|
for(String key : orientElement.getPropertyKeys()){
|
||||||
|
Object object = properties.get(key);
|
||||||
|
object = getPropertyForJson(key, object);
|
||||||
|
if(object!=null){
|
||||||
|
properties.put(key, object);
|
||||||
|
}else{
|
||||||
|
properties.remove(key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject jsonObject = new JSONObject(properties);
|
||||||
|
|
||||||
|
String type = orientElement.getRecord().getClassName();
|
||||||
|
jsonObject.put(ISManageable.CLASS_PROPERTY, type);
|
||||||
|
|
||||||
|
Collection<String> superClasses = getSuperclasses();
|
||||||
JSONArray jsonArray = new JSONArray(superClasses);
|
JSONArray jsonArray = new JSONArray(superClasses);
|
||||||
jsonObject.put(ISManageable.SUPERCLASSES_PROPERTY, jsonArray);
|
jsonObject.put(ISManageable.SUPERCLASSES_PROPERTY, jsonArray);
|
||||||
|
|
||||||
return jsonObject;
|
return jsonObject;
|
||||||
|
} catch (ResourceRegistryException e) {
|
||||||
|
throw e;
|
||||||
} catch(Exception e){
|
} catch(Exception e){
|
||||||
throw new ResourceRegistryException("Error while serializing " + element.toString(), e);
|
throw new ResourceRegistryException("Error while serializing " + getElement().toString(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,9 @@ import org.gcube.informationsystem.model.embedded.Header;
|
||||||
import org.gcube.informationsystem.model.entity.Entity;
|
import org.gcube.informationsystem.model.entity.Entity;
|
||||||
import org.gcube.informationsystem.model.relation.Relation;
|
import org.gcube.informationsystem.model.relation.Relation;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
||||||
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.er.ERNotFoundException;
|
||||||
|
import org.gcube.informationsystem.resourceregistry.context.SecurityContextMapper;
|
||||||
|
import org.gcube.informationsystem.resourceregistry.context.SecurityContextMapper.PermissionMode;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@ -25,8 +28,10 @@ import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery;
|
||||||
import com.tinkerpop.blueprints.Edge;
|
import com.tinkerpop.blueprints.Edge;
|
||||||
import com.tinkerpop.blueprints.Element;
|
import com.tinkerpop.blueprints.Element;
|
||||||
import com.tinkerpop.blueprints.Vertex;
|
import com.tinkerpop.blueprints.Vertex;
|
||||||
|
import com.tinkerpop.blueprints.impls.orient.OrientBaseGraph;
|
||||||
import com.tinkerpop.blueprints.impls.orient.OrientElement;
|
import com.tinkerpop.blueprints.impls.orient.OrientElement;
|
||||||
import com.tinkerpop.blueprints.impls.orient.OrientGraph;
|
import com.tinkerpop.blueprints.impls.orient.OrientGraphFactory;
|
||||||
|
import com.tinkerpop.blueprints.impls.orient.OrientGraphNoTx;
|
||||||
import com.tinkerpop.blueprints.util.io.graphson.GraphSONMode;
|
import com.tinkerpop.blueprints.util.io.graphson.GraphSONMode;
|
||||||
import com.tinkerpop.blueprints.util.io.graphson.GraphSONUtility;
|
import com.tinkerpop.blueprints.util.io.graphson.GraphSONUtility;
|
||||||
|
|
||||||
|
@ -84,9 +89,30 @@ public class Utility {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static <El extends Element> El getElementByUUIDAsAdmin(String elementType, UUID uuid,
|
||||||
|
Class<? extends El> clz) throws ERNotFoundException, ResourceRegistryException {
|
||||||
|
|
||||||
|
OrientGraphFactory orientGraphFactory = SecurityContextMapper
|
||||||
|
.getSecurityContextFactory(SecurityContextMapper.ADMIN_SECURITY_CONTEXT_UUID, PermissionMode.READER);
|
||||||
|
|
||||||
|
OrientGraphNoTx orientGraphNoTx = null;
|
||||||
|
try {
|
||||||
|
|
||||||
|
orientGraphNoTx = orientGraphFactory.getNoTx();
|
||||||
|
|
||||||
|
return Utility.getElementByUUID(orientGraphNoTx, elementType, uuid, clz);
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
if (orientGraphNoTx != null) {
|
||||||
|
orientGraphNoTx.shutdown();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static <El extends Element> El getElementByUUID(
|
public static <El extends Element> El getElementByUUID(
|
||||||
OrientGraph orientGraph, String elementType, UUID uuid,
|
OrientBaseGraph orientBaseGraph, String elementType, UUID uuid,
|
||||||
Class<? extends El> clz) throws ResourceRegistryException {
|
Class<? extends El> clz) throws ERNotFoundException, ResourceRegistryException {
|
||||||
|
|
||||||
if (elementType == null || elementType.compareTo("") == 0) {
|
if (elementType == null || elementType.compareTo("") == 0) {
|
||||||
if (Vertex.class.isAssignableFrom(clz)) {
|
if (Vertex.class.isAssignableFrom(clz)) {
|
||||||
|
@ -104,12 +130,12 @@ public class Utility {
|
||||||
|
|
||||||
OSQLSynchQuery<El> osqlSynchQuery = new OSQLSynchQuery<>(select);
|
OSQLSynchQuery<El> osqlSynchQuery = new OSQLSynchQuery<>(select);
|
||||||
|
|
||||||
Iterable<El> elements = orientGraph.command(osqlSynchQuery).execute();
|
Iterable<El> elements = orientBaseGraph.command(osqlSynchQuery).execute();
|
||||||
if (elements == null || !elements.iterator().hasNext()) {
|
if (elements == null || !elements.iterator().hasNext()) {
|
||||||
String error = String.format("No %s with UUID %s was found",
|
String error = String.format("No %s with UUID %s was found",
|
||||||
elementType, uuid.toString());
|
elementType, uuid.toString());
|
||||||
logger.info(error);
|
logger.info(error);
|
||||||
throw new ResourceRegistryException(error);
|
throw new ERNotFoundException(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
Iterator<El> iterator = elements.iterator();
|
Iterator<El> iterator = elements.iterator();
|
||||||
|
|
|
@ -59,8 +59,8 @@ public class ScopedTest {
|
||||||
GCUBE_DEVSEC = properties.getProperty(GCUBE_DEVSEC_VARNAME);
|
GCUBE_DEVSEC = properties.getProperty(GCUBE_DEVSEC_VARNAME);
|
||||||
GCUBE_DEVSEC_DEVVRE = properties.getProperty(GCUBE_DEVSEC_DEVVRE_VARNAME);
|
GCUBE_DEVSEC_DEVVRE = properties.getProperty(GCUBE_DEVSEC_DEVVRE_VARNAME);
|
||||||
|
|
||||||
DEFAULT_TEST_SCOPE = GCUBE_DEVNEXT_NEXTNEXT;
|
DEFAULT_TEST_SCOPE = GCUBE_DEVSEC;
|
||||||
ALTERNATIVE_TEST_SCOPE = GCUBE_DEVSEC;
|
ALTERNATIVE_TEST_SCOPE = GCUBE_DEVNEXT_NEXTNEXT;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getCurrentScope(String token) throws ObjectNotFound, Exception{
|
public static String getCurrentScope(String token) throws ObjectNotFound, Exception{
|
||||||
|
|
|
@ -49,8 +49,10 @@ import org.gcube.informationsystem.model.relation.isrelatedto.Hosts;
|
||||||
import org.gcube.informationsystem.resourceregistry.ScopedTest;
|
import org.gcube.informationsystem.resourceregistry.ScopedTest;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextNotFoundException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextNotFoundException;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.EntityNotFoundException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.facet.FacetAvailableInAnotherContextException;
|
||||||
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.resource.ResourceAvailableInAnotherContextException;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.resource.ResourceNotFoundException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.resource.ResourceNotFoundException;
|
||||||
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.relation.RelationAvailableInAnotherContextException;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.relation.RelationNotFoundException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.relation.RelationNotFoundException;
|
||||||
import org.gcube.informationsystem.resourceregistry.er.SmartgearResourcesTest;
|
import org.gcube.informationsystem.resourceregistry.er.SmartgearResourcesTest;
|
||||||
import org.gcube.informationsystem.resourceregistry.er.entity.FacetManagement;
|
import org.gcube.informationsystem.resourceregistry.er.entity.FacetManagement;
|
||||||
|
@ -106,8 +108,8 @@ public class MultiContextTest extends ScopedTest {
|
||||||
uuid);
|
uuid);
|
||||||
throw new Exception(
|
throw new Exception(
|
||||||
"You should not be able to read Facet with UUID " + uuid);
|
"You should not be able to read Facet with UUID " + uuid);
|
||||||
} catch (ResourceRegistryException e) {
|
} catch (FacetAvailableInAnotherContextException e) {
|
||||||
logger.debug("Good the facet created in /gcube/devsec is not visible in /gcube/devNext");
|
logger.debug("Good the facet created in the default context is not visible in an alternative context");
|
||||||
}
|
}
|
||||||
|
|
||||||
cpuFacet.setAdditionalProperty("My", "Test");
|
cpuFacet.setAdditionalProperty("My", "Test");
|
||||||
|
@ -121,8 +123,8 @@ public class MultiContextTest extends ScopedTest {
|
||||||
uuid);
|
uuid);
|
||||||
throw new Exception(
|
throw new Exception(
|
||||||
"You should not be able to read Facet with UUID " + uuid);
|
"You should not be able to read Facet with UUID " + uuid);
|
||||||
} catch (ResourceRegistryException e) {
|
} catch (FacetAvailableInAnotherContextException e) {
|
||||||
logger.debug("Good the Facet created in /gcube/devsec cannot be updated in /gcube/devNext");
|
logger.debug("Good the Facet created in the default context cannot be updated in an alternative context");
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -133,8 +135,8 @@ public class MultiContextTest extends ScopedTest {
|
||||||
uuid);
|
uuid);
|
||||||
throw new Exception(
|
throw new Exception(
|
||||||
"You should not be able to delete Facet with UUID " + uuid);
|
"You should not be able to delete Facet with UUID " + uuid);
|
||||||
} catch (ResourceRegistryException e) {
|
} catch (FacetAvailableInAnotherContextException e) {
|
||||||
logger.debug("Good the Facet created in /gcube/devsec cannot be deleted in /gcube/devNext");
|
logger.debug("Good the Facet created in the default context cannot be deleted in an alternative context");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------ */
|
||||||
|
@ -277,7 +279,7 @@ public class MultiContextTest extends ScopedTest {
|
||||||
resourceManagement = new ResourceManagement();
|
resourceManagement = new ResourceManagement();
|
||||||
resourceManagement.setUUID(eServiceUUID);
|
resourceManagement.setUUID(eServiceUUID);
|
||||||
resourceManagement.read();
|
resourceManagement.read();
|
||||||
} catch (ResourceNotFoundException e) {
|
} catch (ResourceAvailableInAnotherContextException e) {
|
||||||
logger.debug("Resource with {} Not Found as Expected",
|
logger.debug("Resource with {} Not Found as Expected",
|
||||||
eServiceUUID);
|
eServiceUUID);
|
||||||
}
|
}
|
||||||
|
@ -285,7 +287,7 @@ public class MultiContextTest extends ScopedTest {
|
||||||
resourceManagement = new ResourceManagement();
|
resourceManagement = new ResourceManagement();
|
||||||
resourceManagement.setUUID(eServiceUUID);
|
resourceManagement.setUUID(eServiceUUID);
|
||||||
resourceManagement.delete();
|
resourceManagement.delete();
|
||||||
} catch (ResourceNotFoundException e) {
|
} catch (ResourceAvailableInAnotherContextException e) {
|
||||||
logger.debug("Resource with {} Not Deleted as Expected",
|
logger.debug("Resource with {} Not Deleted as Expected",
|
||||||
eServiceUUID);
|
eServiceUUID);
|
||||||
}
|
}
|
||||||
|
@ -429,7 +431,7 @@ public class MultiContextTest extends ScopedTest {
|
||||||
String error = String.format("{} with UUID {} should not be visible.", EService.NAME, eServiceUUID);
|
String error = String.format("{} with UUID {} should not be visible.", EService.NAME, eServiceUUID);
|
||||||
logger.trace(error);
|
logger.trace(error);
|
||||||
throw new Exception(error);
|
throw new Exception(error);
|
||||||
}catch (EntityNotFoundException e) {
|
}catch (ResourceAvailableInAnotherContextException e) {
|
||||||
// OK
|
// OK
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -440,7 +442,7 @@ public class MultiContextTest extends ScopedTest {
|
||||||
String error = String.format("{} with UUID {} should not be visible.", Hosts.NAME, hostsUUID);
|
String error = String.format("{} with UUID {} should not be visible.", Hosts.NAME, hostsUUID);
|
||||||
logger.trace(error);
|
logger.trace(error);
|
||||||
throw new Exception(error);
|
throw new Exception(error);
|
||||||
}catch (RelationNotFoundException e) {
|
}catch (RelationAvailableInAnotherContextException e) {
|
||||||
// OK
|
// OK
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -121,6 +121,16 @@ public class ERManagementTest extends ScopedTest {
|
||||||
Assert.assertTrue(deleted);
|
Assert.assertTrue(deleted);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//@Test
|
||||||
|
public void testReadResource() throws Exception {
|
||||||
|
ResourceManagement resourceManagement = new ResourceManagement();
|
||||||
|
resourceManagement.setUUID(UUID.fromString("26da57ee-33bd-4c4b-8aef-9206b61c329e"));
|
||||||
|
|
||||||
|
String read= resourceManagement.read();
|
||||||
|
logger.debug(read);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//@Test
|
//@Test
|
||||||
public void testDeleteResource() throws Exception {
|
public void testDeleteResource() throws Exception {
|
||||||
ResourceManagement resourceManagement = new ResourceManagement();
|
ResourceManagement resourceManagement = new ResourceManagement();
|
||||||
|
|
Loading…
Reference in New Issue