Fixing exception management

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/information-system/resource-registry-client@144251 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Luca Frosini 2017-02-24 11:01:33 +00:00
parent d4f5dc2db5
commit 2bbeb736ea
3 changed files with 11 additions and 16 deletions

View File

@ -8,10 +8,8 @@ import org.gcube.informationsystem.model.ISManageable;
import org.gcube.informationsystem.model.entity.Entity; import org.gcube.informationsystem.model.entity.Entity;
import org.gcube.informationsystem.model.entity.Resource; import org.gcube.informationsystem.model.entity.Resource;
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException; import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
import org.gcube.informationsystem.resourceregistry.api.exceptions.er.ERException;
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.query.InvalidQueryException; import org.gcube.informationsystem.resourceregistry.api.exceptions.query.InvalidQueryException;
import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaException;
import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaNotFoundException; import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaNotFoundException;
import org.gcube.informationsystem.types.TypeBinder.TypeDefinition; import org.gcube.informationsystem.types.TypeBinder.TypeDefinition;
@ -26,16 +24,16 @@ public interface ResourceRegistryClient {
public List<? extends Entity> getInstances( public List<? extends Entity> getInstances(
String type, Boolean polymorphic) throws String type, Boolean polymorphic) throws
ERException, SchemaException, ResourceRegistryException; ResourceRegistryException;
public List<Resource> getInstancesFromEntity( public List<Resource> getInstancesFromEntity(
String relationType, Boolean polymorphic, String relationType, Boolean polymorphic,
UUID reference, Direction direction) throws UUID reference, Direction direction) throws
ERException, SchemaException, ResourceRegistryException; ResourceRegistryException;
public <ISM extends ISManageable> List<TypeDefinition> getSchema( public <ISM extends ISManageable> List<TypeDefinition> getSchema(
Class<ISM> clazz, Boolean polymorphic) Class<ISM> clazz, Boolean polymorphic)
throws SchemaNotFoundException; throws SchemaNotFoundException, ResourceRegistryException;
public String query(final String query, final int limit, public String query(final String query, final int limit,
final String fetchPlan) throws InvalidQueryException; final String fetchPlan) throws InvalidQueryException;

View File

@ -20,10 +20,8 @@ import org.gcube.informationsystem.model.ISManageable;
import org.gcube.informationsystem.model.entity.Entity; import org.gcube.informationsystem.model.entity.Entity;
import org.gcube.informationsystem.model.entity.Resource; import org.gcube.informationsystem.model.entity.Resource;
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException; import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
import org.gcube.informationsystem.resourceregistry.api.exceptions.er.ERException;
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.query.InvalidQueryException; import org.gcube.informationsystem.resourceregistry.api.exceptions.query.InvalidQueryException;
import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaException;
import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaNotFoundException; import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaNotFoundException;
import org.gcube.informationsystem.resourceregistry.api.rest.AccessPath; import org.gcube.informationsystem.resourceregistry.api.rest.AccessPath;
import org.gcube.informationsystem.resourceregistry.api.rest.httputils.HTTPCall; import org.gcube.informationsystem.resourceregistry.api.rest.httputils.HTTPCall;
@ -85,8 +83,7 @@ public class ResourceRegistryClientImpl implements ResourceRegistryClient {
@Override @Override
public List<? extends Entity> getInstances(String type, public List<? extends Entity> getInstances(String type,
Boolean polymorphic) throws ERNotFoundException, Boolean polymorphic) throws ResourceRegistryException {
ResourceRegistryException {
try { try {
logger.info("Going to get all instances of {} ", type); logger.info("Going to get all instances of {} ", type);
StringWriter stringWriter = new StringWriter(); StringWriter stringWriter = new StringWriter();
@ -123,8 +120,7 @@ public class ResourceRegistryClientImpl implements ResourceRegistryClient {
@Override @Override
public List<Resource> getInstancesFromEntity( public List<Resource> getInstancesFromEntity(
String relationType, Boolean polymorphic, UUID reference, String relationType, Boolean polymorphic, UUID reference,
Direction direction) throws ERException, SchemaException, Direction direction) throws ResourceRegistryException {
ResourceRegistryException {
try { try {
logger.info("Going to get all instances of {} from/to {}", relationType, logger.info("Going to get all instances of {} from/to {}", relationType,
reference.toString()); reference.toString());
@ -165,7 +161,7 @@ public class ResourceRegistryClientImpl implements ResourceRegistryClient {
@Override @Override
public <ISM extends ISManageable> List<TypeDefinition> getSchema( public <ISM extends ISManageable> List<TypeDefinition> getSchema(
Class<ISM> clazz, Boolean polymorphic) Class<ISM> clazz, Boolean polymorphic)
throws SchemaNotFoundException { throws SchemaNotFoundException, ResourceRegistryException {
String type = clazz.getSimpleName(); String type = clazz.getSimpleName();
try { try {
@ -191,7 +187,7 @@ public class ResourceRegistryClientImpl implements ResourceRegistryClient {
return TypeBinder.deserializeTypeDefinitions(schema); return TypeBinder.deserializeTypeDefinitions(schema);
} catch (SchemaNotFoundException e) { } catch (ResourceRegistryException e) {
logger.error("Error while getting {}schema for {}", logger.error("Error while getting {}schema for {}",
polymorphic ? AccessPath.POLYMORPHIC_PARAM + " " : "", polymorphic ? AccessPath.POLYMORPHIC_PARAM + " " : "",
type, e); type, e);

View File

@ -8,6 +8,7 @@ import java.util.List;
import org.gcube.informationsystem.model.entity.facet.ContactFacet; import org.gcube.informationsystem.model.entity.facet.ContactFacet;
import org.gcube.informationsystem.model.entity.resource.HostingNode; import org.gcube.informationsystem.model.entity.resource.HostingNode;
import org.gcube.informationsystem.model.entity.resource.Service; import org.gcube.informationsystem.model.entity.resource.Service;
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
import org.gcube.informationsystem.resourceregistry.api.exceptions.query.InvalidQueryException; import org.gcube.informationsystem.resourceregistry.api.exceptions.query.InvalidQueryException;
import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaNotFoundException; import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaNotFoundException;
import org.gcube.informationsystem.types.TypeBinder.TypeDefinition; import org.gcube.informationsystem.types.TypeBinder.TypeDefinition;
@ -36,13 +37,13 @@ public class ResourceRegistryClientTest extends ScopedTest {
} }
@Test @Test
public void testGetFacetSchema() throws SchemaNotFoundException { public void testGetFacetSchema() throws SchemaNotFoundException, ResourceRegistryException {
List<TypeDefinition> typeDefinitions = resourceRegistryClient.getSchema(ContactFacet.class, true); List<TypeDefinition> typeDefinitions = resourceRegistryClient.getSchema(ContactFacet.class, true);
logger.trace("{}", typeDefinitions); logger.trace("{}", typeDefinitions);
} }
@Test @Test
public void testGetResourceSchema() throws SchemaNotFoundException { public void testGetResourceSchema() throws SchemaNotFoundException, ResourceRegistryException {
List<TypeDefinition> typeDefinitions = resourceRegistryClient.getSchema(HostingNode.class, true); List<TypeDefinition> typeDefinitions = resourceRegistryClient.getSchema(HostingNode.class, true);
logger.trace("{}", typeDefinitions); logger.trace("{}", typeDefinitions);
} }
@ -53,7 +54,7 @@ public class ResourceRegistryClientTest extends ScopedTest {
} }
@Test(expected=SchemaNotFoundException.class) @Test(expected=SchemaNotFoundException.class)
public void testException() throws SchemaNotFoundException { public void testException() throws SchemaNotFoundException, ResourceRegistryException {
resourceRegistryClient.getSchema(Aux.class, true); resourceRegistryClient.getSchema(Aux.class, true);
} }