diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/Serialization.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/Serialization.java index f245097..cc42dd7 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/Serialization.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/Serialization.java @@ -84,6 +84,13 @@ public class Serialization { public static final Document asDocument(Object obj) throws JsonProcessingException { return Document.parse(mapper.writeValueAsString(obj)); } + + public static final Document asDocumentWithId(ProfiledDocument doc) throws JsonProcessingException { + Document toReturn =Document.parse(mapper.writeValueAsString(doc)); + if(doc.get_id()!=null) + toReturn.put(ProfiledDocument.ID,new ObjectId(doc.get_id())); + return toReturn; + } // ***** Serialization Exceptions @@ -92,7 +99,7 @@ public class Serialization { @Override public void serialize(ObjectId objectId, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { if (objectId == null) jsonGenerator.writeNull(); - else jsonGenerator.writeString(objectId.toHexString()); + else jsonGenerator.writeString(objectId.toString()); } @Override @@ -148,7 +155,7 @@ public class Serialization { @Override public void serialize(Semver semver, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { if (semver == null) jsonGenerator.writeNull(); - else jsonGenerator.writeString(semver.toString()); + else jsonGenerator.writeString(semver.getValue()); } @Override diff --git a/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java b/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java index 328f7e0..0754e9c 100644 --- a/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java +++ b/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java @@ -1,6 +1,10 @@ package org.gcube.application.cms.concessioni.plugins; import lombok.extern.slf4j.Slf4j; +import org.bson.BsonDocument; +import org.bson.BsonString; +import org.bson.BsonValue; +import org.bson.Document; import org.gcube.application.cms.Serialization; import org.gcube.application.cms.custom.gna.concessioni.model.ProfiledConcessione; import org.gcube.application.cms.plugins.LifecycleManager; @@ -11,9 +15,11 @@ import org.gcube.application.cms.plugins.model.PluginDescriptor; import org.gcube.application.cms.plugins.reports.ExecutionReport; import org.gcube.application.cms.plugins.reports.InitializationReport; import org.gcube.application.cms.plugins.requests.StepExecutionRequest; -import org.gcube.application.geoportal.common.model.document.ComparableVersion; -import org.gcube.application.geoportal.common.model.document.LifecycleInformation; -import org.gcube.application.geoportal.common.model.document.ProfiledDocument; +import org.gcube.application.geoportal.common.model.document.*; +import org.gcube.application.geoportal.common.model.legacy.RelazioneScavo; +import org.gcube.application.geoportal.common.model.legacy.report.ConstraintCheck; + +import java.util.List; @Slf4j public class ConcessioniLifeCycleManager implements LifecycleManager { @@ -97,7 +103,63 @@ public class ConcessioniLifeCycleManager implements LifecycleManager { private static final ProfiledDocument setDefaults(ProfiledDocument document){ ProfiledConcessione c=Serialization.convert(document,ProfiledConcessione.class); - c.setDefaults(); + + + + Document doc=c.getTheDocument(); + doc.putIfAbsent(ProfiledConcessione.SOGGETTO,new String[]{"Research Excavation","Archaeology"}); + + doc.putIfAbsent(ProfiledConcessione.DSCRIZIONE_CONTENUTO,"Relazione di fine scavo e relativo abstract; selezione di immagini rappresentative;" + + " posizionamento topografico dell'area indagata, pianta di fine scavo."); + + // Super Section + c.getInfo().getAccess().setLicense( + ConstraintCheck.defaultFor(c.getInfo().getAccess().getLicense(), "CC0-1.0").evaluate()); + + + //RELAZIONE + // TODO NB provare se object gia' presente sia usando Document che sub Object + doc.putIfAbsent(ProfiledConcessione.RELAZIONE_SCAVO,new Document()); + Document rel=Serialization.convert(doc.get(ProfiledConcessione.RELAZIONE_SCAVO), Document.class); + + rel.putIfAbsent(ProfiledConcessione.Sections.TITOLO,doc.getString(ProfiledConcessione.NOME)+" relazione di scavo"); + rel.putIfAbsent(ProfiledConcessione.SOGGETTO,doc.get(ProfiledConcessione.SOGGETTO)); + rel.putIfAbsent(RegisteredFileSet.CREATION_INFO,c.getInfo().getCreationInfo()); + rel.putIfAbsent(RegisteredFileSet.ACCESS,c.getInfo().getAccess()); + Access relAccess=Serialization.convert(rel.get(RegisteredFileSet.ACCESS),Access.class); + relAccess.setLicense(ConstraintCheck.defaultFor(relAccess.getLicense(),"CC-BY-4.0").evaluate()); + relAccess.setPolicy(ConstraintCheck.defaultFor(relAccess.getPolicy(), AccessPolicy.OPEN).evaluate()); + + //ABSTRACT Relazione + doc.putIfAbsent(ProfiledConcessione.ABSTRACT_RELAZIONE,new Document()); + Document abs=Serialization.convert(doc.get(ProfiledConcessione.ABSTRACT_RELAZIONE),Document.class); + abs.putIfAbsent(ProfiledConcessione.Sections.TITOLO,doc.getString(ProfiledConcessione.NOME)+" abstract relazione di scavo"); + abs.putIfAbsent(RegisteredFileSet.CREATION_INFO,c.getInfo().getCreationInfo()); + abs.putIfAbsent(RegisteredFileSet.ACCESS,c.getInfo().getAccess()); + Access absAccess=Serialization.convert(abs.get(RegisteredFileSet.ACCESS),Access.class); + absAccess.setLicense(ConstraintCheck.defaultFor(absAccess.getLicense(),"CC-BY-4.0").evaluate()); + absAccess.setPolicy(ConstraintCheck.defaultFor(absAccess.getPolicy(), AccessPolicy.OPEN).evaluate()); + + //TODO complete setDefaults + //IMMAGINI RAPPRESENTATIVE + + + if(doc.containsKey(ProfiledConcessione.IMMAGINI_RAPPRESENTATIVE)) { + for (BsonValue bsonValue : doc.toBsonDocument(null, null). + getArray(ProfiledConcessione.IMMAGINI_RAPPRESENTATIVE)) { + + BsonDocument imgDocument = bsonValue.asDocument(); + imgDocument.putIfAbsent(ProfiledConcessione.SOGGETTO,new BsonString(doc.getString(ProfiledConcessione.SOGGETTO))); +// imgDocument.putIfAbsent(RegisteredFileSet.CREATION_INFO,this.getInfo().getCreationInfo()); +// imgDocument.putIfAbsent(RegisteredFileSet.CREATION_INFO,new BsonDocument(new Document())); +// imgDocument.putIfAbsent(RegisteredFileSet.ACCESS,this.getInfo().getAccess()); +// Access absAccess=rel.get(RegisteredFileSet.ACCESS,Access.class); +// absAccess.setLicense(ConstraintCheck.defaultFor(absAccess.getLicense(),"CC-BY-4.0").evaluate()); +// absAccess.setPolicy(ConstraintCheck.defaultFor(absAccess.getPolicy(), AccessPolicy.OPEN).evaluate()); + } + } + + return c; } diff --git a/concessioni-model/src/main/java/org/gcube/application/cms/custom/gna/concessioni/model/ProfiledConcessione.java b/concessioni-model/src/main/java/org/gcube/application/cms/custom/gna/concessioni/model/ProfiledConcessione.java index 8665bc0..60b6a36 100644 --- a/concessioni-model/src/main/java/org/gcube/application/cms/custom/gna/concessioni/model/ProfiledConcessione.java +++ b/concessioni-model/src/main/java/org/gcube/application/cms/custom/gna/concessioni/model/ProfiledConcessione.java @@ -9,7 +9,6 @@ import org.gcube.application.geoportal.common.model.document.Access; import org.gcube.application.geoportal.common.model.document.AccessPolicy; import org.gcube.application.geoportal.common.model.document.ProfiledDocument; import org.gcube.application.geoportal.common.model.document.RegisteredFileSet; -import org.gcube.application.geoportal.common.model.legacy.RelazioneScavo; import org.gcube.application.geoportal.common.model.legacy.report.ConstraintCheck; import java.util.List; @@ -65,58 +64,5 @@ public class ProfiledConcessione extends ProfiledDocument { } - @Override - public void setDefaults() { - Document doc=this.getTheDocument(); - doc.putIfAbsent(SOGGETTO,new String[]{"Research Excavation","Archaeology"}); - doc.putIfAbsent(DSCRIZIONE_CONTENUTO,"Relazione di fine scavo e relativo abstract; selezione di immagini rappresentative;" - + " posizionamento topografico dell'area indagata, pianta di fine scavo."); - - // Super Section - this.getInfo().getAccess().setLicense( - ConstraintCheck.defaultFor(getInfo().getAccess().getLicense(), "CC0-1.0").evaluate()); - - - //RELAZIONE - // TODO NB provare se object gia' presente sia usando Document che sub Object - doc.putIfAbsent(RELAZIONE_SCAVO,new Document()); - RelazioneScavo rel=doc.get(RELAZIONE_SCAVO,RelazioneScavo.class); -// rel.putIfAbsent(Sections.TITOLO,doc.getString(NOME)+" relazione di scavo"); -// rel.putIfAbsent(SOGGETTO,doc.get(SOGGETTO)); -// rel.putIfAbsent(RegisteredFileSet.CREATION_INFO,this.getInfo().getCreationInfo()); -// rel.putIfAbsent(RegisteredFileSet.ACCESS,this.getInfo().getAccess()); -// Access relAccess=rel.get(RegisteredFileSet.ACCESS,Access.class); -// relAccess.setLicense(ConstraintCheck.defaultFor(relAccess.getLicense(),"CC-BY-4.0").evaluate()); -// relAccess.setPolicy(ConstraintCheck.defaultFor(relAccess.getPolicy(), AccessPolicy.OPEN).evaluate()); - - //ABSTRACT Relazione - doc.putIfAbsent(ABSTRACT_RELAZIONE,new Document()); - Document abs=doc.get(ABSTRACT_RELAZIONE,Document.class); - abs.putIfAbsent(Sections.TITOLO,doc.getString(NOME)+" abstract relazione di scavo"); - abs.putIfAbsent(RegisteredFileSet.CREATION_INFO,this.getInfo().getCreationInfo()); - abs.putIfAbsent(RegisteredFileSet.ACCESS,this.getInfo().getAccess()); - Access absAccess=abs.get(RegisteredFileSet.ACCESS,Access.class); - absAccess.setLicense(ConstraintCheck.defaultFor(absAccess.getLicense(),"CC-BY-4.0").evaluate()); - absAccess.setPolicy(ConstraintCheck.defaultFor(absAccess.getPolicy(), AccessPolicy.OPEN).evaluate()); - - //TODO complete setDefaults - //IMMAGINI RAPPRESENTATIVE - - - if(doc.containsKey(IMMAGINI_RAPPRESENTATIVE)) { - for (BsonValue bsonValue : doc.toBsonDocument(null, null). - getArray(IMMAGINI_RAPPRESENTATIVE)) { - - BsonDocument imgDocument = bsonValue.asDocument(); - imgDocument.putIfAbsent(SOGGETTO,new BsonString(doc.getString(SOGGETTO))); -// imgDocument.putIfAbsent(RegisteredFileSet.CREATION_INFO,this.getInfo().getCreationInfo()); -// imgDocument.putIfAbsent(RegisteredFileSet.CREATION_INFO,new BsonDocument(new Document())); -// imgDocument.putIfAbsent(RegisteredFileSet.ACCESS,this.getInfo().getAccess()); -// Access absAccess=rel.get(RegisteredFileSet.ACCESS,Access.class); -// absAccess.setLicense(ConstraintCheck.defaultFor(absAccess.getLicense(),"CC-BY-4.0").evaluate()); -// absAccess.setPolicy(ConstraintCheck.defaultFor(absAccess.getPolicy(), AccessPolicy.OPEN).evaluate()); - } - } - } } diff --git a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/legacy/ConcessioniManagerI.java b/geoportal-client/src/main/java/org/gcube/application/geoportal/client/legacy/ConcessioniManagerI.java index 986e2c4..7668631 100644 --- a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/legacy/ConcessioniManagerI.java +++ b/geoportal-client/src/main/java/org/gcube/application/geoportal/client/legacy/ConcessioniManagerI.java @@ -2,7 +2,7 @@ package org.gcube.application.geoportal.client.legacy; import org.gcube.application.geoportal.common.model.legacy.*; import org.gcube.application.geoportal.common.rest.MongoConcessioni; -import org.gcube.application.geoportal.common.rest.TempFile; +import org.gcube.application.geoportal.common.model.rest.TempFile; public interface ConcessioniManagerI extends MongoConcessioni{ diff --git a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/legacy/StatefulMongoConcessioni.java b/geoportal-client/src/main/java/org/gcube/application/geoportal/client/legacy/StatefulMongoConcessioni.java index 70bb6af..3460bbc 100644 --- a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/legacy/StatefulMongoConcessioni.java +++ b/geoportal-client/src/main/java/org/gcube/application/geoportal/client/legacy/StatefulMongoConcessioni.java @@ -9,7 +9,7 @@ import org.gcube.application.geoportal.client.DefaultMongoConcessioni; import org.gcube.application.geoportal.common.model.legacy.*; import org.gcube.application.geoportal.common.utils.FileSets; import org.gcube.application.geoportal.common.model.legacy.Concessione.Paths; -import org.gcube.application.geoportal.common.rest.TempFile; +import org.gcube.application.geoportal.common.model.rest.TempFile; import org.gcube.application.geoportal.common.utils.StorageUtils; import org.gcube.common.clients.delegates.ProxyDelegate; diff --git a/geoportal-client/src/test/java/org/gcube/application/geoportal/StorageTests.java b/geoportal-client/src/test/java/org/gcube/application/geoportal/StorageTests.java index 87f4801..8be06bb 100644 --- a/geoportal-client/src/test/java/org/gcube/application/geoportal/StorageTests.java +++ b/geoportal-client/src/test/java/org/gcube/application/geoportal/StorageTests.java @@ -1,19 +1,10 @@ package org.gcube.application.geoportal; -import org.apache.commons.io.IOUtils; import org.gcube.application.cms.tests.TokenSetter; -import org.gcube.application.geoportal.common.rest.TempFile; -import org.gcube.application.geoportal.common.utils.Files; import org.gcube.application.geoportal.common.utils.StorageUtils; -import org.gcube.common.storagehub.client.dsl.StorageHubClient; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; public class StorageTests { diff --git a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/BasicVreTests.java b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/BasicVreTests.java index 4016eb1..6764444 100644 --- a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/BasicVreTests.java +++ b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/BasicVreTests.java @@ -7,9 +7,9 @@ public class BasicVreTests { @BeforeClass public static void setScope(){ -// TokenSetter.set("/pred4s/preprod/preVRE"); + TokenSetter.set("/pred4s/preprod/preVRE"); // TokenSetter.set("/d4science.research-infrastructures.eu/D4OS/GeoNA-Prototype"); - TokenSetter.set("/gcube/devsec/devVRE"); + // TokenSetter.set("/gcube/devsec/devVRE"); } diff --git a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatefulClientTests.java b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatefulClientTests.java index f8e861b..07bac9a 100644 --- a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatefulClientTests.java +++ b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatefulClientTests.java @@ -13,8 +13,7 @@ import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI; import org.gcube.application.geoportal.client.utils.Serialization; import org.gcube.application.geoportal.common.model.legacy.*; import org.gcube.application.geoportal.common.model.legacy.report.ValidationReport.ValidationStatus; -import org.gcube.application.geoportal.common.rest.TempFile; -import org.gcube.application.geoportal.common.utils.Files; +import org.gcube.application.geoportal.common.model.rest.TempFile; import org.gcube.application.geoportal.common.utils.StorageUtils; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.junit.Test; diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/document/ProfiledDocument.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/document/ProfiledDocument.java index 46d22df..04ee294 100644 --- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/document/ProfiledDocument.java +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/document/ProfiledDocument.java @@ -14,7 +14,7 @@ import org.bson.types.ObjectId; @ToString public class ProfiledDocument { - public static final String _ID="_id"; + public static final String ID="_id"; public static final String VERSION="version"; public static final String INFO="info"; public static final String PROFILE_ID="profileID"; @@ -47,8 +47,5 @@ public class ProfiledDocument { private Document theDocument; - public void setDefaults(){ - // TODO APPLY DEFAULTS ?? - }; } diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/profile/DataAccessPolicy.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/profile/DataAccessPolicy.java new file mode 100644 index 0000000..659cc3b --- /dev/null +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/profile/DataAccessPolicy.java @@ -0,0 +1,51 @@ +package org.gcube.application.geoportal.common.model.profile; + +import lombok.*; +import org.bson.Document; + +import java.util.List; + +@NoArgsConstructor +@AllArgsConstructor +@Getter +@Setter +@ToString +public class DataAccessPolicy { + + public static final String POLICY = "policy"; + public static final String ROLES = "roles"; + public static final String ENFORCER = "enforcer"; + + @NoArgsConstructor + @AllArgsConstructor + @Getter + @Setter + @ToString + public static class Policy { + public static final String WRITE="write"; + public static final String READ="read"; + + public static enum Type{ + OWN,NONE,ANY + } + + private Type write; + private Type read; + } + + + @NoArgsConstructor + @AllArgsConstructor + @Getter + @Setter + @ToString + public static class PolicyEnforcer { + public static final String FILTER="filter"; + private Document filter; + } + + + private Policy policy; + private List roles; + private PolicyEnforcer enforcer; +} diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/profile/Field.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/profile/Field.java index 98782c5..daa780f 100644 --- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/profile/Field.java +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/profile/Field.java @@ -12,7 +12,11 @@ public class Field extends Document { public static final String CHILDREN="_children"; public static final String MAX_CARDINALITY="_max"; public static final String MIN_CARDINALITY="_min"; + public static final String LABEL="_label"; + public String getLabel(){ + return this.getString(LABEL); + } public String getType(){ return this.getString(TYPE); @@ -22,6 +26,11 @@ public class Field extends Document { return this.get(CHILDREN,List.class); } + public Boolean isCollection() { + Integer maxCard=this.getMaxCardinality(); + return (maxCard>1||maxCard<0); // Negative values for unbounded + } + public Integer getMaxCardinality(){ return (Integer) this.getOrDefault(MAX_CARDINALITY,1); } diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/profile/Profile.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/profile/Profile.java index d60c130..649e9de 100644 --- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/profile/Profile.java +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/profile/Profile.java @@ -31,6 +31,9 @@ public class Profile{ private List handlers; + + private List dataAccessPolicies; + /** * Returns map Type -> Handler Declaration * @return diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/AddSectionToConcessioneRequest.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/AddSectionToConcessioneRequest.java index 4606c34..a864a21 100644 --- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/AddSectionToConcessioneRequest.java +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/AddSectionToConcessioneRequest.java @@ -10,12 +10,12 @@ import lombok.NoArgsConstructor; import org.bson.Document; import org.gcube.application.geoportal.common.faults.InvalidRequestException; import org.gcube.application.geoportal.common.model.legacy.Concessione; -import org.gcube.application.geoportal.common.rest.TempFile; @XmlRootElement @Data @AllArgsConstructor @NoArgsConstructor +@Deprecated public class AddSectionToConcessioneRequest { private String destinationPath; diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/RegisterFileSetRequest.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/RegisterFileSetRequest.java new file mode 100644 index 0000000..4fbd5eb --- /dev/null +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/RegisterFileSetRequest.java @@ -0,0 +1,39 @@ +package org.gcube.application.geoportal.common.model.rest; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.bson.Document; +import org.gcube.application.geoportal.common.faults.InvalidRequestException; + +import javax.xml.bind.annotation.XmlRootElement; +import java.util.List; + +@XmlRootElement +@Data +@AllArgsConstructor +@NoArgsConstructor +public class RegisterFileSetRequest { + + /** Behavior for existing JSON Object at @destinationPath + * + * REPLACE_EXISTING : removes previously defined attributes (only on single match) + * MERGE_EXISTING : merges the provided attributes with the matching ones (only on single match) + * APPEND : appends the object to the existing collection (only if field is multiple) + */ + public static enum ClashOptions { + REPLACE_EXISTING,MERGE_EXISTING, APPEND + } + + private String fieldPath; + private String destinationPath; + private List streams; + private Document attributes; + + private ClashOptions clashOption; + + public void validate()throws InvalidRequestException { + if(streams==null || streams.isEmpty()) throw new InvalidRequestException("No Temp File declared"); + for(TempFile t : streams) t.validate(); + } +} diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/rest/StepExecutionRequest.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/StepExecutionRequest.java similarity index 84% rename from geoportal-common/src/main/java/org/gcube/application/geoportal/common/rest/StepExecutionRequest.java rename to geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/StepExecutionRequest.java index 4790186..198757e 100644 --- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/rest/StepExecutionRequest.java +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/StepExecutionRequest.java @@ -1,4 +1,4 @@ -package org.gcube.application.geoportal.common.rest; +package org.gcube.application.geoportal.common.model.rest; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/rest/TempFile.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/TempFile.java similarity index 90% rename from geoportal-common/src/main/java/org/gcube/application/geoportal/common/rest/TempFile.java rename to geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/TempFile.java index 4276512..5cfe276 100644 --- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/rest/TempFile.java +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/TempFile.java @@ -1,4 +1,4 @@ -package org.gcube.application.geoportal.common.rest; +package org.gcube.application.geoportal.common.model.rest; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/FileSets.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/FileSets.java index a70421d..b7fd726 100644 --- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/FileSets.java +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/FileSets.java @@ -1,8 +1,8 @@ package org.gcube.application.geoportal.common.utils; import org.gcube.application.geoportal.common.model.legacy.InputStreamDescriptor; -import org.gcube.application.geoportal.common.model.rest.AddSectionToConcessioneRequest; -import org.gcube.application.geoportal.common.rest.TempFile; +import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest; +import org.gcube.application.geoportal.common.model.rest.TempFile; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import java.io.File; @@ -13,7 +13,7 @@ import java.util.ArrayList; public class FileSets { public static class RequestBuilder { - AddSectionToConcessioneRequest theRequest=new AddSectionToConcessioneRequest(); + RegisterFileSetRequest theRequest=new RegisterFileSetRequest(); public RequestBuilder add(TempFile... f){ if(theRequest.getStreams()==null) @@ -39,7 +39,7 @@ public class FileSets { - public AddSectionToConcessioneRequest getTheRequest(){return theRequest;} + public RegisterFileSetRequest getTheRequest(){return theRequest;} } @@ -62,7 +62,7 @@ public class FileSets { return toReturn.toArray(new TempFile[toReturn.size()]); } - public static AddSectionToConcessioneRequest prepareRequestFromFolder(StorageUtils storage, String path, File directory) throws FileNotFoundException { + public static RegisterFileSetRequest prepareRequestFromFolder(StorageUtils storage, String path, File directory) throws FileNotFoundException { File[] children =directory.listFiles(); System.out.println("Found "+children+ " files to push"); @@ -71,7 +71,7 @@ public class FileSets { } - public static AddSectionToConcessioneRequest prepareRequest(StorageUtils storage, String path, File... toUpload) throws FileNotFoundException { + public static RegisterFileSetRequest prepareRequest(StorageUtils storage, String path, File... toUpload) throws FileNotFoundException { FileSets.RequestBuilder builder = FileSets.build(path); for (File f : toUpload) { diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/JSONPathWrapper.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/JSONPathWrapper.java index d90461e..4e75137 100644 --- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/JSONPathWrapper.java +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/JSONPathWrapper.java @@ -1,12 +1,14 @@ package org.gcube.application.geoportal.common.utils; + import com.jayway.jsonpath.*; +import com.jayway.jsonpath.spi.json.JacksonJsonProvider; +import com.jayway.jsonpath.spi.json.JsonProvider; +import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider; +import com.jayway.jsonpath.spi.mapper.MappingProvider; import lombok.Getter; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; +import java.util.*; public class JSONPathWrapper { @@ -14,11 +16,33 @@ public class JSONPathWrapper { public static Configuration JSON_PATH_PATHS_CONFIGURATION=null; static { + Configuration.setDefaults(new Configuration.Defaults() { + private JsonProvider jacksonProvider = new JacksonJsonProvider(); + + private final MappingProvider mappingProvider = new JacksonMappingProvider(); + @Override + public JsonProvider jsonProvider() { + return jacksonProvider; + } + + @Override + public Set