diff --git a/geoportal-common/pom.xml b/geoportal-common/pom.xml
index f940491..517a98d 100644
--- a/geoportal-common/pom.xml
+++ b/geoportal-common/pom.xml
@@ -58,38 +58,11 @@
junit
junit
- 4.12
test
-
-
- org.glassfish.jersey.media
- jersey-media-json-jackson
-
-
-
-
- com.fasterxml.jackson.datatype
- jackson-datatype-jsr310
- 2.8.8
-
-
-
-
- org.gcube.contentmanagement
- storage-manager-core
- [2.0.0, 3.0.0-SNAPSHOT)
-
-
- org.gcube.contentmanagement
- storage-manager-wrapper
- [2.0.0, 3.0.0-SNAPSHOT)
-
-
-
ch.qos.logback
logback-classic
diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/Files.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/Files.java
index b730201..a30245c 100644
--- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/Files.java
+++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/Files.java
@@ -38,11 +38,15 @@ public class Files {
}
public static String fixFilename(String toFix) {
+ String extension="";
if(toFix.contains(".")) {
- String prefix=toFix.substring(toFix.lastIndexOf("."));
- toFix=toFix.substring(0,toFix.lastIndexOf("."));
- return toFix.toLowerCase().replaceAll("[\\*\\+\\/\\\\ \\[\\]\\(\\)\\.\\\"\\:\\;\\|]","_")+prefix;
+ //preserve extension
+ int index=toFix.indexOf(".");
+ extension=toFix.substring(index);
+ //only escape before extension
+ toFix=toFix.substring(0,toFix.indexOf("."));
}
- return toFix.toLowerCase().replaceAll("[\\*\\+\\/\\\\ \\[\\]\\(\\)\\.\\\"\\:\\;\\|]","_");
+ return toFix.toLowerCase().
+ replaceAll("[\\*\\+\\/\\\\ \\[\\]\\(\\)\\.\\\"\\:\\;\\|]","_")+extension;
}
}
diff --git a/geoportal-common/src/test/java/org/gcube/application/geoportal/common/FilesTests.java b/geoportal-common/src/test/java/org/gcube/application/geoportal/common/FilesTests.java
new file mode 100644
index 0000000..d53bc9b
--- /dev/null
+++ b/geoportal-common/src/test/java/org/gcube/application/geoportal/common/FilesTests.java
@@ -0,0 +1,26 @@
+package org.gcube.application.geoportal.common;
+
+import lombok.extern.slf4j.Slf4j;
+import org.gcube.application.geoportal.common.utils.Files;
+import org.junit.Test;
+
+import java.io.File;
+
+import static org.junit.Assert.assertTrue;
+
+@Slf4j
+public class FilesTests {
+
+ @Test
+ public void testNames(){
+ for(String name : new File("../test-data/concessioni").list()){
+ if(name.contains(".")) {
+ String originalExtension = name.substring(name.indexOf("."));
+ String obtained = Files.fixFilename(name);
+ log.info(name + "->" + obtained + "[" + originalExtension + "]");
+ assertTrue(obtained.endsWith(originalExtension));
+ }
+ }
+ }
+
+}
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/SDIManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/SDIManager.java
index d1099f7..5546580 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/SDIManager.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/SDIManager.java
@@ -116,7 +116,11 @@ public class SDIManager {
FileContainer fc=wsManager.getFileById(wc.getStorageID());
String completeFilename=Files.fixFilename(fc.get().getName());
- String filename=completeFilename.contains(".")?completeFilename.substring(0, completeFilename.lastIndexOf(".")):completeFilename;
+
+
+ String filename=
+ completeFilename.contains(".")?
+ completeFilename.substring(0, completeFilename.indexOf(".")):completeFilename;
Destination destination=new Destination(completeFilename);
diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/ConcessioniOverMongoTest.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/ConcessioniOverMongoTest.java
index 83fb52d..14e5020 100644
--- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/ConcessioniOverMongoTest.java
+++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/ConcessioniOverMongoTest.java
@@ -175,13 +175,14 @@ public class ConcessioniOverMongoTest extends BasicServiceTestUnit{
}
-// @Test
-// public void handlePrecise() throws Exception {
-// WebTarget target=target(PATH);
-// String id="610415af02ad3d05b5f81ee3";
-// publish(target,unpublish(target,id));
-// target.path(id).queryParam(InterfaceConstants.Parameters.FORCE,true).request(MediaType.APPLICATION_JSON).delete();
-// }
+ @Test
+ public void handlePrecise() throws Exception {
+ //Republishing
+ WebTarget target=target(PATH);
+ String id="610415af02ad3d05b5f81ee3";
+ publish(target,unpublish(target,id));
+ target.path(id).queryParam(InterfaceConstants.Parameters.FORCE,true).request(MediaType.APPLICATION_JSON).delete();
+ }
@@ -275,8 +276,9 @@ public class ConcessioniOverMongoTest extends BasicServiceTestUnit{
assertEquals(published.getImmaginiRappresentative().size(),2);
assertEquals(published.getPianteFineScavo().size(),1);
assertNotNull(published.getPosizionamentoScavo().getWmsLink());
- for(LayerConcessione l : published.getPianteFineScavo())
+ for(LayerConcessione l : published.getPianteFineScavo()) {
assertNotNull(l.getWmsLink());
+ }
assertNotNull(published.getCentroidLat());
assertNotNull(published.getCentroidLong());
}
@@ -295,10 +297,13 @@ public class ConcessioniOverMongoTest extends BasicServiceTestUnit{
upload(storage,target,c.getMongo_id(),Paths.RELAZIONE,"relazione.pdf");
upload(storage,target,c.getMongo_id(),Paths.ABSTRACT_RELAZIONE,"relazione.pdf");
- upload(storage,target,c.getMongo_id(),Paths.POSIZIONAMENTO,"pos.shp","pos.shx");
+ upload(storage,target,c.getMongo_id(),Paths.POSIZIONAMENTO,
+ TestModel.getBaseFolder().list((file,name)->{return name.startsWith("pos");}));
// Clash on workspaces
- upload(storage,target,c.getMongo_id(),Paths.piantaByIndex(0),"pianta.shp","pianta.shx");
+ upload(storage,target,c.getMongo_id(),Paths.piantaByIndex(0),
+ TestModel.getBaseFolder().list((file,name)->{return name.startsWith("pianta");}));
+
upload(storage,target,c.getMongo_id(),Paths.imgByIndex(0),"immagine.png");
upload(storage,target,c.getMongo_id(),Paths.imgByIndex(1),"immagine2.png");
diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/SDITests.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/SDITests.java
index e2f45b0..c0f81cf 100644
--- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/SDITests.java
+++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/SDITests.java
@@ -39,4 +39,10 @@ public class SDITests {
Assert.assertTrue(dbMatcher.find());
System.out.println("DB :\t"+dbMatcher.group());
}
+
+
+ @Test
+ public void registerFileSet(){
+
+ }
}
diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/ws/DescribeWSFolder.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/ws/DescribeWSFolder.java
index 9b88c51..351836f 100644
--- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/ws/DescribeWSFolder.java
+++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/ws/DescribeWSFolder.java
@@ -1,31 +1,46 @@
package org.gcube.application.geoportal.service.ws;
import org.gcube.application.geoportal.service.TokenSetter;
+import org.gcube.common.storagehub.client.dsl.FolderContainer;
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
import org.gcube.common.storagehub.model.items.*;
public class DescribeWSFolder {
+
+ static StorageHubClient shc =null;
+
public static void main(String[] args) throws StorageHubException {
String context="/gcube/devsec/devVRE";
- String folderID="fea4a885-7e60-4294-83d0-82162e7462f4";
-
+ String folderID="28774602-6423-4870-9afb-f8f4b585b438";
+ Boolean recursive = true;
TokenSetter.set(context);
- StorageHubClient shc = new StorageHubClient();
- FolderItem folder=shc.open(folderID).asFolder().get();
+ shc= new StorageHubClient();
+ FolderContainer folder=shc.open(folderID).asFolder();
- System.out.println("PATH : "+folder.getPath());
- System.out.println("HIDDEN : "+folder.isHidden());
- System.out.println("Description : "+folder.getDescription());
+ FolderItem item=folder.get();
+ System.out.print("PATH : "+item.getPath()+"\tHIDDEN : "+item.isHidden()+"\tDescription : "+item.getDescription());
System.out.println("Listing... ");
- for (Item item : shc.open(folderID).asFolder().list().getItems()) {
- System.out.println("name:" + item.getName() + " is a File?: " + (item instanceof AbstractFileItem));
- System.out.println("name:" + item.getName() + " is a folder?: " + (item instanceof FolderItem));
- System.out.println("name:" + item.getName() + " is a shared folder?: " + (item instanceof SharedFolder));
- System.out.println("name:" + item.getName() + " is a VRE folder?: " + (item instanceof VreFolder));
+ print(folder,"");
+// for (Item i : folder.list().includeHidden().getItems()) {
+// System.out.println("name:" + i.getName() + " type " + i.getPrimaryType());
+//
+//// System.out.println("name:" + i.getName() + " is a File?: " + (i instanceof AbstractFileItem));
+//// System.out.println("name:" + i.getName() + " is a folder?: " + (i instanceof FolderItem));
+//// System.out.println("name:" + i.getName() + " is a shared folder?: " + (i instanceof SharedFolder));
+//// System.out.println("name:" + i.getName() + " is a VRE folder?: " + (i instanceof VreFolder));
+// }
+ }
+
+ private static final void print(FolderContainer folder,String pad) throws StorageHubException {
+ for (Item i : folder.list().includeHidden().getItems()) {
+ System.out.println(pad+"name:" + i.getName() + " type " + i.getPrimaryType());
+ if(i instanceof FolderItem){
+ print(shc.open(i.getId()).asFolder(),pad+"\t");
+ }
}
}
}
diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/ws/DisplayWorkspaceTree.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/ws/DisplayWorkspaceTree.java
index b5f56b0..8ffc364 100644
--- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/ws/DisplayWorkspaceTree.java
+++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/ws/DisplayWorkspaceTree.java
@@ -5,7 +5,10 @@ public class DisplayWorkspaceTree {
public static void main(String[] args) {
String context="/gcube/devsec/devVRE";
- String folderId=null; // NB null ==
+ String folderId=null;
+
+
+ // NB null ==
}
diff --git a/test-data/concessioni/pianta.cpg b/test-data/concessioni/pianta.cpg
new file mode 100644
index 0000000..3ad133c
--- /dev/null
+++ b/test-data/concessioni/pianta.cpg
@@ -0,0 +1 @@
+UTF-8
\ No newline at end of file
diff --git a/test-data/concessioni/pianta.dbf b/test-data/concessioni/pianta.dbf
new file mode 100644
index 0000000..821a4a1
Binary files /dev/null and b/test-data/concessioni/pianta.dbf differ
diff --git a/test-data/concessioni/pianta.prj b/test-data/concessioni/pianta.prj
new file mode 100644
index 0000000..f45cbad
--- /dev/null
+++ b/test-data/concessioni/pianta.prj
@@ -0,0 +1 @@
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]
\ No newline at end of file
diff --git a/test-data/concessioni/pianta.sbn b/test-data/concessioni/pianta.sbn
new file mode 100644
index 0000000..757374b
Binary files /dev/null and b/test-data/concessioni/pianta.sbn differ
diff --git a/test-data/concessioni/pianta.sbx b/test-data/concessioni/pianta.sbx
new file mode 100644
index 0000000..2e6e700
Binary files /dev/null and b/test-data/concessioni/pianta.sbx differ
diff --git a/test-data/concessioni/pianta.shp b/test-data/concessioni/pianta.shp
index 24ed2bd..7e326d1 100644
Binary files a/test-data/concessioni/pianta.shp and b/test-data/concessioni/pianta.shp differ
diff --git a/test-data/concessioni/pianta.shp.xml b/test-data/concessioni/pianta.shp.xml
new file mode 100644
index 0000000..d4c60dd
--- /dev/null
+++ b/test-data/concessioni/pianta.shp.xml
@@ -0,0 +1,2 @@
+
+20200224093706001.0TRUEProject MAG_Anomalies F:\PROGETTI\Vulci\CONSEGNA_WGS84\Mag_anomalies_WGS84.shp GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]] Monte_Mario_To_WGS_1984_4 PROJCS['Monte_Mario_Italy_2',GEOGCS['GCS_Monte_Mario',DATUM['D_Monte_Mario',SPHEROID['International_1924',6378388.0,297.0]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',2520000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',15.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]] NO_PRESERVE_SHAPE # NO_VERTICAL
diff --git a/test-data/concessioni/pianta.shx b/test-data/concessioni/pianta.shx
index b6a49a0..06b652a 100644
Binary files a/test-data/concessioni/pianta.shx and b/test-data/concessioni/pianta.shx differ
diff --git a/use-cases/src/main/java/org/gcube/application/cms/usecases/RepublishSingle.java b/use-cases/src/main/java/org/gcube/application/cms/usecases/RepublishSingle.java
new file mode 100644
index 0000000..3789e00
--- /dev/null
+++ b/use-cases/src/main/java/org/gcube/application/cms/usecases/RepublishSingle.java
@@ -0,0 +1,28 @@
+package org.gcube.application.cms.usecases;
+
+import org.gcube.application.cms.tests.TokenSetter;
+import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI;
+import org.gcube.application.geoportal.common.model.legacy.Concessione;
+import org.gcube.application.geoportal.common.rest.MongoConcessioni;
+
+
+import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.mongoConcessioni;
+
+public class RepublishSingle {
+
+ public static void main(String[] args) throws Exception {
+ TokenSetter.set("/gcube/devsec/devVRE");
+
+ String id="6138c3a002ad3d1f0cd659f4";
+
+ MongoConcessioni manager=mongoConcessioni().build();
+
+ manager.unPublish(id);
+
+ System.out.println("Going to publish... ");
+ Concessione c=manager.publish(id);
+
+ System.out.println("Result is "+c);
+ System.out.println("REPORT STATUST : "+c.getReport().getStatus());
+ }
+}
diff --git a/use-cases/src/main/java/org/gcube/application/cms/usecases/UnpublishSingle.java b/use-cases/src/main/java/org/gcube/application/cms/usecases/UnpublishSingle.java
deleted file mode 100644
index b1052e4..0000000
--- a/use-cases/src/main/java/org/gcube/application/cms/usecases/UnpublishSingle.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.gcube.application.cms.usecases;
-
-import org.gcube.application.cms.tests.TokenSetter;
-import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI;
-
-
-import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.statefulMongoConcessioni;
-
-public class UnpublishSingle {
-
- public static void main(String[] args) throws Exception {
- TokenSetter.set("/gcube/devsec/devVRE");
-
- ConcessioniManagerI manager=statefulMongoConcessioni().build();
-
- manager.publish("610415af02ad3d05b5f81ee3");
- }
-}