diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/ex/ApplicationException.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/ex/ApplicationException.java index 4d94f79..bccc0ff 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/ex/ApplicationException.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/ex/ApplicationException.java @@ -9,20 +9,20 @@ import org.gcube.data_catalogue.grsf_publish_ws.json.output.ResponseBean; import org.slf4j.LoggerFactory; /** - * Exception thrown when @Valid fail + * Exception thrown on fail * @author Costantino Perciante at ISTI-CNR */ -//@Provider +@Provider public class ApplicationException implements ExceptionMapper { private static final org.slf4j.Logger logger = LoggerFactory.getLogger(ApplicationException.class); - - public Response toResponse(Exception e) { - logger.warn("ApplicationException invoked for error " + e); - return Response - .status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()) - .type(MediaType.APPLICATION_JSON) - .entity(new ResponseBean(false, e.toString(), null)) - .build(); - } + + public Response toResponse(Exception e) { + logger.warn("ApplicationException invoked for error " + e); + return Response + .status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()) + .type(MediaType.APPLICATION_JSON) + .entity(new ResponseBean(false, e.toString(), null)) + .build(); + } } \ No newline at end of file diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/ex/ValidationException.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/ex/ValidationException.java index 162cde4..f5ef904 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/ex/ValidationException.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/ex/ValidationException.java @@ -11,7 +11,7 @@ import org.gcube.data_catalogue.grsf_publish_ws.json.output.ResponseBean; import org.slf4j.LoggerFactory; /** - * Exception thrown on fail + * Exception thrown when @Valid fails * @author Costantino Perciante at ISTI-CNR */ @Provider diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/Base.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/Base.java index 584ff65..649838b 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/Base.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/Base.java @@ -13,16 +13,18 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; /** * The base class contains basic information needed to publish something in the data catalogue. * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it) */ +@JsonIgnoreProperties(ignoreUnknown = true) public class Base { private static final List FIELDS_TO_IGNORE = Arrays.asList( - Constants.AUTHOR, Constants.AUTHOR_CONTACT, Constants.SYSTEM_TYPE_CUSTOM_KEY); + Constants.AUTHOR, Constants.AUTHOR_CONTACT, Constants.SYSTEM_TYPE_CUSTOM_KEY, Constants.GRSF_TYPE_JSON_KEY); private static Logger logger = LoggerFactory.getLogger(Base.class); @@ -183,7 +185,7 @@ public class Base { logger.info("Found extra property: [" + key + "," + value + "]"); if(FIELDS_TO_IGNORE.contains(key)){ - logger.debug("Ignoring it"); + logger.debug("Ignoring field with key " + key); return; } diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/Common.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/Common.java index 2113c8c..9744aa2 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/Common.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/Common.java @@ -19,14 +19,12 @@ import org.gcube.datacatalogue.common.Constants; import org.gcube.datacatalogue.common.enums.Sources; import org.gcube.datacatalogue.common.enums.Status; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; /** * Information that both Stock and Fishery records must contain. * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it) */ -@JsonIgnoreProperties(value = {Constants.GRSF_TYPE_JSON_KEY}) public class Common extends Base{ // it is added in case of GRSF record diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/FisheryRecord.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/FisheryRecord.java index 80d85b3..480119e 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/FisheryRecord.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/FisheryRecord.java @@ -12,14 +12,12 @@ import org.gcube.datacatalogue.common.Constants; import org.gcube.datacatalogue.common.enums.Fishery_Type; import org.gcube.datacatalogue.common.enums.Production_System_Type; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; /** * A fishery record bean. * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it) */ -@JsonIgnoreProperties(ignoreUnknown = true) public class FisheryRecord extends Common{ @JsonProperty(Constants.FISHERY_NAME_JSON_KEY) diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/StockRecord.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/StockRecord.java index ec3f4f6..27c1f97 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/StockRecord.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/json/input/record/StockRecord.java @@ -16,14 +16,12 @@ import org.gcube.datacatalogue.common.enums.Abundance_Level; import org.gcube.datacatalogue.common.enums.Fishing_Pressure; import org.gcube.datacatalogue.common.enums.Stock_Type; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; /** * A stock record bean. * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it) */ -@JsonIgnoreProperties(ignoreUnknown = true) public class StockRecord extends Common{ @JsonProperty(Constants.STOCK_NAME_JSON_KEY) diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherFisheryService.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherFisheryService.java index 7b05252..05c069d 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherFisheryService.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherFisheryService.java @@ -153,7 +153,7 @@ public class GrsfPublisherFisheryService { boolean publicDataset = context.equals((String)contextServlet.getInitParameter(HelperMethods.PUBLIC_CONTEX_KEY)); // convert extras' keys to keys with namespace - Map namespaces = HelperMethods.getFieldToFieldNameSpaceMapping(HelperMethods.GENERIC_RESOURCE_NAME_MAP_KEY_NAMESPACES_FISHERY); + Map namespaces = HelperMethods.getFieldToFieldNameSpaceMapping(Constants.GENERIC_RESOURCE_NAME_MAP_KEY_NAMESPACES_FISHERY); if(namespaces == null) throw new Exception("Failed to retrieve the namespaces for the key fields!"); @@ -471,7 +471,7 @@ public class GrsfPublisherFisheryService { customFields.put(Constants.SYSTEM_TYPE_CUSTOM_KEY, Arrays.asList(sourceInPath.getOrigName())); // convert extras' keys to keys with namespace - Map namespaces = HelperMethods.getFieldToFieldNameSpaceMapping(HelperMethods.GENERIC_RESOURCE_NAME_MAP_KEY_NAMESPACES_FISHERY); + Map namespaces = HelperMethods.getFieldToFieldNameSpaceMapping(Constants.GENERIC_RESOURCE_NAME_MAP_KEY_NAMESPACES_FISHERY); if(namespaces == null) throw new Exception("Failed to retrieve the namespaces for the key fields!"); diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherStockService.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherStockService.java index 72a8c12..2625640 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherStockService.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherStockService.java @@ -168,7 +168,7 @@ public class GrsfPublisherStockService { boolean publicDataset = context.equals((String)contextServlet.getInitParameter(HelperMethods.PUBLIC_CONTEX_KEY)); // convert extras' keys to keys with namespace - Map namespaces = HelperMethods.getFieldToFieldNameSpaceMapping(HelperMethods.GENERIC_RESOURCE_NAME_MAP_KEY_NAMESPACES_STOCK); + Map namespaces = HelperMethods.getFieldToFieldNameSpaceMapping(Constants.GENERIC_RESOURCE_NAME_MAP_KEY_NAMESPACES_STOCK); if(namespaces == null) throw new Exception("Failed to retrieve the namespaces for the key fields!"); @@ -478,7 +478,7 @@ public class GrsfPublisherStockService { customFields.put(Constants.SYSTEM_TYPE_CUSTOM_KEY, Arrays.asList(sourceInPath.getOrigName())); // convert extras' keys to keys with namespace - Map namespaces = HelperMethods.getFieldToFieldNameSpaceMapping(HelperMethods.GENERIC_RESOURCE_NAME_MAP_KEY_NAMESPACES_STOCK); + Map namespaces = HelperMethods.getFieldToFieldNameSpaceMapping(Constants.GENERIC_RESOURCE_NAME_MAP_KEY_NAMESPACES_STOCK); if(namespaces == null) throw new Exception("Failed to retrieve the namespaces for the key fields!"); diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/CommonServiceUtils.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/CommonServiceUtils.java index 70e307b..6d04442 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/CommonServiceUtils.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/CommonServiceUtils.java @@ -26,8 +26,8 @@ import org.gcube.data_catalogue.grsf_publish_ws.json.input.record.Common; import org.gcube.data_catalogue.grsf_publish_ws.json.input.record.FisheryRecord; import org.gcube.data_catalogue.grsf_publish_ws.json.input.record.StockRecord; import org.gcube.data_catalogue.grsf_publish_ws.json.output.ResponseCreationBean; +import org.gcube.data_catalogue.grsf_publish_ws.utils.csv.ManageTimeSeriesThread; import org.gcube.data_catalogue.grsf_publish_ws.utils.threads.AssociationToGroupThread; -import org.gcube.data_catalogue.grsf_publish_ws.utils.threads.ManageTimeSeriesThread; import org.gcube.data_catalogue.grsf_publish_ws.utils.threads.WritePostCatalogueManagerThread; import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogue; import org.gcube.datacatalogue.ckanutillibrary.shared.ResourceBean; diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/HelperMethods.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/HelperMethods.java index d4c45ee..9a43137 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/HelperMethods.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/HelperMethods.java @@ -67,9 +67,6 @@ public abstract class HelperMethods { private static final String SOCIAL_SERVICE_WRITE_APPLICATION_POST = "/2/posts/write-post-app/"; private static final String MEDIATYPE_JSON = "application/json"; - public static final String GENERIC_RESOURCE_NAME_MAP_KEY_NAMESPACES_STOCK = "GRSF Stock"; - public static final String GENERIC_RESOURCE_NAME_MAP_KEY_NAMESPACES_FISHERY = "GRSF Fishery"; - // to be retrieved from the web.xml public static final String MANAGE_CONTEX_KEY = "ManageVRE"; public static final String PUBLIC_CONTEX_KEY = "PublicVRE"; diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/CSVUtils.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/csv/CSVUtils.java similarity index 98% rename from src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/CSVUtils.java rename to src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/csv/CSVUtils.java index ef996a8..6f581e2 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/CSVUtils.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/csv/CSVUtils.java @@ -1,4 +1,4 @@ -package org.gcube.data_catalogue.grsf_publish_ws.utils; +package org.gcube.data_catalogue.grsf_publish_ws.utils.csv; import java.io.BufferedWriter; import java.io.File; diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/ManageTimeSeriesThread.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/csv/ManageTimeSeriesThread.java similarity index 98% rename from src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/ManageTimeSeriesThread.java rename to src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/csv/ManageTimeSeriesThread.java index 8c77c99..2131af4 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/ManageTimeSeriesThread.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/csv/ManageTimeSeriesThread.java @@ -1,4 +1,4 @@ -package org.gcube.data_catalogue.grsf_publish_ws.utils.threads; +package org.gcube.data_catalogue.grsf_publish_ws.utils.csv; import java.beans.IntrospectionException; import java.beans.PropertyDescriptor; @@ -25,7 +25,6 @@ import org.gcube.data_catalogue.grsf_publish_ws.custom_annotations.TimeSeries; import org.gcube.data_catalogue.grsf_publish_ws.json.input.record.Common; import org.gcube.data_catalogue.grsf_publish_ws.json.input.record.FisheryRecord; import org.gcube.data_catalogue.grsf_publish_ws.json.input.record.StockRecord; -import org.gcube.data_catalogue.grsf_publish_ws.utils.CSVUtils; import org.gcube.data_catalogue.grsf_publish_ws.utils.HelperMethods; import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogue; import org.gcube.datacatalogue.common.caches.CacheImpl; diff --git a/src/test/java/org/gcube/data_catalogue/grsf_publish_ws/JTests.java b/src/test/java/org/gcube/data_catalogue/grsf_publish_ws/JTests.java index 4740a3a..8a8348b 100644 --- a/src/test/java/org/gcube/data_catalogue/grsf_publish_ws/JTests.java +++ b/src/test/java/org/gcube/data_catalogue/grsf_publish_ws/JTests.java @@ -32,8 +32,8 @@ import org.gcube.data_catalogue.grsf_publish_ws.json.input.others.TimeSeriesBean import org.gcube.data_catalogue.grsf_publish_ws.json.input.record.Common; import org.gcube.data_catalogue.grsf_publish_ws.json.input.record.FisheryRecord; import org.gcube.data_catalogue.grsf_publish_ws.json.input.record.StockRecord; -import org.gcube.data_catalogue.grsf_publish_ws.utils.CSVUtils; import org.gcube.data_catalogue.grsf_publish_ws.utils.HelperMethods; +import org.gcube.data_catalogue.grsf_publish_ws.utils.csv.CSVUtils; import org.gcube.data_catalogue.grsf_publish_ws.utils.threads.AssociationToGroupThread; import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogue; import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogueFactory;