diff --git a/.gitignore b/.gitignore
index b83d222..0f44a0f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
/target/
+/.classpath
diff --git a/.settings/.gitignore b/.settings/.gitignore
index 0924da4..917f19e 100644
--- a/.settings/.gitignore
+++ b/.settings/.gitignore
@@ -1 +1,2 @@
/org.eclipse.m2e.core.prefs
+/org.eclipse.core.resources.prefs
diff --git a/pom.xml b/pom.xml
index 51d87c6..fd6996f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,7 +80,6 @@
org.glassfish.jersey.media
jersey-media-json-jackson
- test
@@ -88,7 +87,6 @@
com.fasterxml.jackson.datatype
jackson-datatype-jsr310
2.8.8
- test
diff --git a/src/main/java/org/gcube/application/geoportal/common/model/legacy/AssociatedContent.java b/src/main/java/org/gcube/application/geoportal/common/model/legacy/AssociatedContent.java
index bee2128..b4a9b5f 100644
--- a/src/main/java/org/gcube/application/geoportal/common/model/legacy/AssociatedContent.java
+++ b/src/main/java/org/gcube/application/geoportal/common/model/legacy/AssociatedContent.java
@@ -4,6 +4,9 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+
import org.gcube.application.geoportal.common.model.legacy.report.ValidationReport;
import org.gcube.application.geoportal.common.utils.CollectionsUtils;
@@ -36,7 +39,10 @@ public abstract class AssociatedContent {
-
+ @XmlElements({
+ @XmlElement(type=GeoServerContent.class),
+ @XmlElement(type=WorkspaceContent.class),
+ })
private List actualContent=new ArrayList<>();
diff --git a/src/main/java/org/gcube/application/geoportal/common/model/legacy/Concessione.java b/src/main/java/org/gcube/application/geoportal/common/model/legacy/Concessione.java
index ae5d6d4..a3bebde 100644
--- a/src/main/java/org/gcube/application/geoportal/common/model/legacy/Concessione.java
+++ b/src/main/java/org/gcube/application/geoportal/common/model/legacy/Concessione.java
@@ -5,6 +5,8 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import javax.xml.bind.annotation.XmlRootElement;
+
import org.gcube.application.geoportal.common.model.legacy.report.Check;
import org.gcube.application.geoportal.common.model.legacy.report.ConstraintCheck;
import org.gcube.application.geoportal.common.model.legacy.report.ValidationReport;
@@ -18,7 +20,7 @@ import lombok.ToString;
@Getter
@Setter
@ToString(callSuper=true)
-
+@XmlRootElement
public class Concessione extends Record{
diff --git a/src/main/java/org/gcube/application/geoportal/common/model/legacy/PersistedContent.java b/src/main/java/org/gcube/application/geoportal/common/model/legacy/PersistedContent.java
index fd51e8e..9905d66 100644
--- a/src/main/java/org/gcube/application/geoportal/common/model/legacy/PersistedContent.java
+++ b/src/main/java/org/gcube/application/geoportal/common/model/legacy/PersistedContent.java
@@ -1,5 +1,9 @@
package org.gcube.application.geoportal.common.model.legacy;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonSubTypes.Type;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
@@ -7,25 +11,22 @@ import lombok.Setter;
@Getter
@Setter
@EqualsAndHashCode
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
+@JsonSubTypes({
+ @Type(value = GeoServerContent.class),
+ @Type(value = WorkspaceContent.class),
+ })
public abstract class PersistedContent {
//Generic Info
private long id;
- private AssociatedContent associated;
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("PersistedContent [id=");
builder.append(id);
- if(associated==null) {
- builder.append(", associated=");
- builder.append(associated);
- }else {
- builder.append(", OWNER-associated-id=");
- builder.append(associated.getId());
- }
builder.append("]");
return builder.toString();
}
diff --git a/src/main/java/org/gcube/application/geoportal/common/model/legacy/Record.java b/src/main/java/org/gcube/application/geoportal/common/model/legacy/Record.java
index 1930b46..9a55f07 100644
--- a/src/main/java/org/gcube/application/geoportal/common/model/legacy/Record.java
+++ b/src/main/java/org/gcube/application/geoportal/common/model/legacy/Record.java
@@ -14,6 +14,7 @@ import lombok.ToString;
@Setter
@ToString
@EqualsAndHashCode
+
public abstract class Record {
diff --git a/src/main/java/org/gcube/application/geoportal/common/rest/ConcessioniI.java b/src/main/java/org/gcube/application/geoportal/common/rest/ConcessioniI.java
index b93346f..f34949a 100644
--- a/src/main/java/org/gcube/application/geoportal/common/rest/ConcessioniI.java
+++ b/src/main/java/org/gcube/application/geoportal/common/rest/ConcessioniI.java
@@ -3,7 +3,8 @@ package org.gcube.application.geoportal.common.rest;
public interface ConcessioniI {
- public String create(String toCreate);
- public String readById(String readById);
-
+ public String create(String toCreate) throws Exception;
+ public String readById(String id) throws Exception;
+ public String getAll() throws Exception;
+ public String update(String id,String updated) throws Exception;
}
diff --git a/src/main/java/org/gcube/application/geoportal/common/rest/InterfaceConstants.java b/src/main/java/org/gcube/application/geoportal/common/rest/InterfaceConstants.java
index 037b0cd..c11e344 100644
--- a/src/main/java/org/gcube/application/geoportal/common/rest/InterfaceConstants.java
+++ b/src/main/java/org/gcube/application/geoportal/common/rest/InterfaceConstants.java
@@ -2,6 +2,9 @@ package org.gcube.application.geoportal.common.rest;
public class InterfaceConstants {
+ public static final String NAMESPACE="http://gcube-system.org/namespaces/data/sdi-service";
+
+ public static final String APPLICATION_BASE_PATH="geoportal-service";
public static final String APPLICATION_PATH="/srv/";
public static final String SERVICE_CLASS="Application";
public static final String SERVICE_NAME="GeoPortal";
diff --git a/src/test/java/org/gcube/application/geoportal/common/model/SerializationTest.java b/src/test/java/org/gcube/application/geoportal/common/model/SerializationTest.java
index 9c009d2..5b116f3 100644
--- a/src/test/java/org/gcube/application/geoportal/common/model/SerializationTest.java
+++ b/src/test/java/org/gcube/application/geoportal/common/model/SerializationTest.java
@@ -19,6 +19,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
public class SerializationTest {
@@ -30,6 +31,7 @@ public class SerializationTest {
mapper.configure(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS, false);
mapper.setSerializationInclusion(Include.NON_NULL);
// mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
+ mapper.registerModule(new JavaTimeModule());
}
diff --git a/src/test/resources/Concessione.json b/src/test/resources/Concessione.json
index 595f22e..5ed9f4f 100644
--- a/src/test/resources/Concessione.json
+++ b/src/test/resources/Concessione.json
@@ -1,200 +1 @@
-{
- "id": 1,
- "recordType": "CONCESSIONE",
- "version": "1.0.0",
- "licenzaID": "CC-BY",
- "policy": "OPEN",
- "nome": "Italia, forse",
- "folderId": "2f1bcd4b-fc3d-48c5-aa3b-064c68ba94c9",
- "lastUpdateTime": [
- 2020,
- 11,
- 17,
- 12,
- 19,
- 58,
- 418000000
- ],
- "lastUpdateUser": "NO NAME",
- "creationTime": [
- 2020,
- 11,
- 17,
- 12,
- 19,
- 58,
- 418000000
- ],
- "creationUser": "NO NAME",
- "introduzione": "This is my project",
- "descrizioneContenuto": "It contains this and that",
- "authors": [
- "Some one",
- "Some, oneelse"
- ],
- "contributore": "Contrib 1",
- "titolari": [
- "Some one",
- "Some, oneelse"
- ],
- "responsabile": "Someone",
- "editore": "Editore",
- "fontiFinanziamento": [
- "Big pharma",
- "Pentagon"
- ],
- "soggetto": [
- "Research Excavation",
- "Archeology"
- ],
- "risorseCorrelate": [],
- "dataInizioProgetto": [
- 2020,
- 11,
- 17,
- 12,
- 19,
- 40,
- 741000000
- ],
- "dataFineProgetto": [
- 2020,
- 11,
- 17,
- 12,
- 19,
- 40,
- 752000000
- ],
- "titolareLicenza": "Qualcun altro",
- "titolareCopyright": "Chiedilo in giro",
- "paroleChiaveLibere": [
- "Robba",
- "Stuff"
- ],
- "paroleChiaveICCD": [
- "vattelapesca",
- "somthing something"
- ],
- "centroidLat": 43.0,
- "centroidLong": 9.0,
- "relazioneScavo": {
- "id": 11,
- "policy": "OPEN",
- "licenseID": "CC-BY",
- "titolo": "Italia, forse relazione di scavo",
- "creationTime": [
- 2020,
- 11,
- 17,
- 12,
- 19,
- 58,
- 418000000
- ],
- "record": null,
- "actualContent": [
- {
- "id": 16,
- "associated": null,
- "mimetype": "application/pdf",
- "storageID": "78ec815e-cc0e-4a61-8248-8eebe8c7c6be",
- "link": "https://data.dev.d4science.org/shub/E_K0lSY05ja0s2N2hkVkxzWTVRSGN0MWZ4UFFOQnFTZHgraytOK05lcHZ2d002aGQ1Z2grZkE5d1ZmTUc5V3diLw=="
- }
- ],
- "abstractSection": "simple abstract section",
- "responsabili": [
- "Some one",
- "Some, oneelse"
- ],
- "soggetto": [
- "Research Excavation",
- "Archeology"
- ]
- },
- "immaginiRappresentative": [],
- "posizionamentoScavo": {
- "id": 10,
- "policy": "OPEN",
- "licenseID": "CC-BY",
- "titolo": "Italia, forse posizionamento scavo",
- "creationTime": [
- 2020,
- 11,
- 17,
- 12,
- 19,
- 58,
- 418000000
- ],
- "record": null,
- "actualContent": [
- {
- "id": 11,
- "associated": null,
- "mimetype": "application/x-dbf",
- "storageID": "6c6ab4c4-5691-4652-9010-485ec8f1fc3d",
- "link": "https://data.dev.d4science.org/shub/E_OThaZC9lRkk5cVprcjBwZlBFS1NyZEtvcjNTekFJYjVoZUdXalQweGI2emJzZ3cxNTFoUUJNbUs1YXRKLzA0bg=="
- },
- {
- "id": 12,
- "associated": null,
- "mimetype": "text/plain",
- "storageID": "10b8fbce-89a1-4a76-9e91-17c08c45c8ca",
- "link": "https://data.dev.d4science.org/shub/E_eEo2NEV5WHl6RDhVSUMvWm1NTndwOW5FTjZaSkdPVjR0MFBiclNWWTBCbUJXUjA1ZmNVbU00N3FXeU5JQVdnLw=="
- },
- {
- "id": 13,
- "associated": null,
- "mimetype": "text/plain",
- "storageID": "435380a5-812d-4bef-b0f1-f0e89cd93730",
- "link": "https://data.dev.d4science.org/shub/E_YTMyTDU5cVBxSWRkZEFuYi9hTVQ2ZUxtbnNyYU9KcUNydFl6dk5jbkhYWHk2ODAwUDZuemE5M2xVT2RPZDA5MA=="
- },
- {
- "id": 14,
- "associated": null,
- "mimetype": "application/x-shapefile",
- "storageID": "04a284fe-c6f2-4dd6-8c9c-06cc1ebbefb8",
- "link": "https://data.dev.d4science.org/shub/E_UXRlN0F0OUdWazdCNElORExJUlppL0JEMjdkcHIvNWNDNGdtejNBQkxQTFlySERlWnQySUVDSkVTWHJHblRtdg=="
- },
- {
- "id": 15,
- "associated": null,
- "mimetype": "application/x-shapefile",
- "storageID": "285882cd-7922-4755-b7f2-95fe72960425",
- "link": "https://data.dev.d4science.org/shub/E_aFlKbkhhREE3VlQ3TzZRMzlNK2YrODYxamFsclRmOWZKL1FYS1BzbjIvYWNBMjNnK2pyQzZTZUVKODUrRjBlTQ=="
- }
- ],
- "layerUUID": null,
- "layerID": null,
- "layerName": null,
- "wmsLink": null,
- "abstractSection": "Posizionamento topografico georeferenziato dell’area interessata dalle indagini",
- "topicCategory": "Society",
- "subTopic": "Archeology",
- "bbox": {
- "maxLat": 90.0,
- "maxLong": 180.0,
- "minLat": -90.0,
- "minLong": -180.0
- },
- "paroleChiaveLibere": [
- "Robba",
- "Stuff"
- ],
- "paroleChiaveICCD": [
- "vattelapesca",
- "somthing something"
- ],
- "valutazioneQualita": "Secondo me si",
- "metodoRaccoltaDati": "Fattobbene",
- "scalaAcquisizione": "1:10000",
- "authors": [
- "Some one",
- "Some, oneelse"
- ],
- "responsabile": "Someone"
- },
- "pianteFineScavo": [],
- "genericContent": []
-}
\ No newline at end of file
+{"id":4,"recordType":"CONCESSIONE","version":"1.0.0","licenzaID":"CC-BY","policy":"OPEN","nome":"Italia, forse","folderId":"e064c8ec-8b83-419e-ad67-ecd40bd17c76","lastUpdateTime":[2020,11,18,12,14,17,267000000],"lastUpdateUser":"NO NAME","creationTime":[2020,11,18,12,14,17,267000000],"creationUser":"NO NAME","introduzione":"This is my project","descrizioneContenuto":"It contains this and that","authors":["Some one","Some, oneelse"],"contributore":"Contrib 1","titolari":["Some one","Some, oneelse"],"responsabile":"Someone","editore":"Editore","fontiFinanziamento":["Big pharma","Pentagon"],"soggetto":["Research Excavation","Archeology"],"risorseCorrelate":[],"dataInizioProgetto":[2020,11,18,12,14,16,33000000],"dataFineProgetto":[2020,11,18,12,14,16,33000000],"titolareLicenza":"Qualcun altro","titolareCopyright":"Chiedilo in giro","paroleChiaveLibere":["Robba","Stuff"],"paroleChiaveICCD":["vattelapesca","somthing something"],"centroidLat":43.0,"centroidLong":9.0,"relazioneScavo":{"id":44,"policy":"OPEN","licenseID":"CC-BY","titolo":"Italia, forse relazione di scavo","creationTime":[2020,11,18,12,14,17,267000000],"record":null,"actualContent":[{"type":"WorkspaceContent","id":64,"associated":null,"mimetype":"application/pdf","storageID":"e82ddd36-de4a-42da-801a-40f3bf1dea43","link":"https://data.dev.d4science.org/shub/E_Slg1TzAvb1hRbnd5MUt3aWc2Tzl5Sjh5ZFZwN0E4VmJ4MHNKc3REL1BtM2NQT2pEai9mTThNeHU1QVVKWWFiaQ=="}],"abstractSection":"simple abstract section","responsabili":["Some one","Some, oneelse"],"soggetto":["Research Excavation","Archeology"]},"immaginiRappresentative":[],"posizionamentoScavo":{"id":43,"policy":"OPEN","licenseID":"CC-BY","titolo":"Italia, forse posizionamento scavo","creationTime":[2020,11,18,12,14,17,267000000],"record":null,"actualContent":[{"type":"WorkspaceContent","id":62,"associated":null,"mimetype":"application/x-shapefile","storageID":"0a191728-a55a-4cfc-a06b-74a2c7ab06cb","link":"https://data.dev.d4science.org/shub/E_WUo4K2diTjYxK00vcE1tb3NXM3JrdVlBWnZ3eHhZQjdxdTRoYWNYZG4zSXRON3BtRDh1M3duaTBrZ3JmaVBROQ=="},{"type":"WorkspaceContent","id":59,"associated":null,"mimetype":"application/x-dbf","storageID":"9ddec900-6133-4312-ae1c-6e5a246d656c","link":"https://data.dev.d4science.org/shub/E_bGFLdy9VVmtGc2pyeW9BOTZwY0dPOFp1ZmowY25Nd1JFY1ZmdUdNOHBuZnZTWlNVNThFeWVhTzVBc1BqZTl5SQ=="},{"type":"WorkspaceContent","id":60,"associated":null,"mimetype":"text/plain","storageID":"bf0973f9-e963-494a-9884-45cf40860323","link":"https://data.dev.d4science.org/shub/E_QU5MU3pnZUhZaWpsai9jeXY0azdJT3J3Z3N6bVQwZTBZKytsTGpWVmVZTThsOXN6dEREL2xOeko2UEFLSmtWWA=="},{"type":"WorkspaceContent","id":61,"associated":null,"mimetype":"text/plain","storageID":"161f01b6-4c5d-44c2-9f4b-f86b983870d9","link":"https://data.dev.d4science.org/shub/E_Q0dwUlhOTCtQRlAvZ29lZFZVbzNFcXNHMm1iL3B4SDdEMGVnVi9oVkxHMEp6dEZBTWthemhuZW1BQ0hIVnpocg=="},{"type":"WorkspaceContent","id":63,"associated":null,"mimetype":"application/x-shapefile","storageID":"738a4505-499c-4447-b2dc-be591dd36bfb","link":"https://data.dev.d4science.org/shub/E_dEVOdk5UaHJDVmJvUm0zMmU4MUR2Vmc3OXpxVkFUMWh1dTZUSFMxbExOYmhxdmUzMnMwNTE4bTZaZS9Vekk0TQ=="}],"layerUUID":null,"layerID":null,"layerName":null,"wmsLink":null,"abstractSection":"Posizionamento topografico georeferenziato dell’area interessata dalle indagini","topicCategory":"Society","subTopic":"Archeology","bbox":{"maxLat":90.0,"maxLong":180.0,"minLat":-90.0,"minLong":-180.0},"paroleChiaveLibere":["Robba","Stuff"],"paroleChiaveICCD":["vattelapesca","somthing something"],"valutazioneQualita":"Secondo me si","metodoRaccoltaDati":"Fattobbene","scalaAcquisizione":"1:10000","authors":["Some one","Some, oneelse"],"responsabile":"Someone"},"pianteFineScavo":[],"genericContent":[]}