Compare commits

...

2 Commits

Author SHA1 Message Date
Fabio Sinibaldi ec6b347f90 Fixes #24213 (case-sensitive file extension) 2022-11-29 11:41:40 +01:00
Fabio Sinibaldi fc638de33c Testing 2022-11-23 14:31:36 +01:00
5 changed files with 88 additions and 63 deletions

View File

@ -100,7 +100,7 @@ public class Files {
toFix=toFix.substring(0,toFix.indexOf(".")); toFix=toFix.substring(0,toFix.indexOf("."));
} }
return toFix.toLowerCase(). return toFix.toLowerCase().
replaceAll("[\\-\\*\\+\\/\\\\ \\[\\]\\(\\)\\.\\\"\\:\\;\\|\\=]","_")+extension; replaceAll("[\\-\\*\\+\\/\\\\ \\[\\]\\(\\)\\.\\\"\\:\\;\\|\\=]","_")+extension.toLowerCase();
} }
public static final File downloadFromUrl(String name,String url) throws IOException { public static final File downloadFromUrl(String name,String url) throws IOException {

View File

@ -44,9 +44,8 @@ public class ProfiledConcessioniTests extends AbstractProfiledDocumentsTests{
UserUtils.DEFAULT_ROLES.add("Data-Manager"); UserUtils.DEFAULT_ROLES.add("Data-Manager");
// Create new // Create new
Document theDoc=Document.parse("{\n" + Document theDoc=Document.parse("{" +
"\"posizionamentoScavo\" :{\n" + "\"posizionamentoScavo\" :{\"titolo\" : \"mio titolo\"},\"nome\":\"TEST SDI Extensions\"}");
"\t\"titolo\" : \"mio titolo\"}}");
theDoc.put("startTime", LocalDateTime.now()); theDoc.put("startTime", LocalDateTime.now());
@ -68,7 +67,7 @@ public class ProfiledConcessioniTests extends AbstractProfiledDocumentsTests{
"$.posizionamentoScavo."+ Field.CHILDREN+"[?(@.fileset)]", "$.posizionamentoScavo."+ Field.CHILDREN+"[?(@.fileset)]",
null, null,
RegisterFileSetRequest.ClashOptions.MERGE_EXISTING, RegisterFileSetRequest.ClashOptions.MERGE_EXISTING,
"concessioni/pos.shp"); "concessioni/pos.SHP");
System.out.println("Registered posizionamento, result is "+ Serialization.write(doc)); System.out.println("Registered posizionamento, result is "+ Serialization.write(doc));

View File

@ -19,7 +19,7 @@ public abstract class SupportedFormat {
case ".tif" : {toReturn.add(new SupportedFormat(".tif") { case ".tif" : {toReturn.add(new SupportedFormat(".tif") {
@Override @Override
public void consider(RegisteredFile f) { public void consider(RegisteredFile f) {
if (f.getName().endsWith(getFileExtension())){ if (f.getName().toLowerCase().endsWith(getFileExtension())){
getToUseFileSet().add(f); getToUseFileSet().add(f);
isProposedFilesetValid=true; isProposedFilesetValid=true;
} }
@ -31,7 +31,7 @@ public abstract class SupportedFormat {
@Override @Override
public void consider(RegisteredFile f) { public void consider(RegisteredFile f) {
getToUseFileSet().add(f); getToUseFileSet().add(f);
if (f.getName().endsWith(getFileExtension())){ if (f.getName().toLowerCase().endsWith(getFileExtension())){
isProposedFilesetValid=true; isProposedFilesetValid=true;
} }
} }

View File

@ -45,10 +45,12 @@ public class ClearProjects {
Iterator<Project> it=null; Iterator<Project> it=null;
String queryString = String.format("{\"_theDocument.nome\" :{\"$eq\" : \"Landro (Comune di Tambre, BL) \"},\"_theDocument.dataInizioProgetto\":{\"$eq\":\"2021-05-29T00:00:00\"}}\n" +
"}");
QueryRequest q = new QueryRequest(); QueryRequest q = new QueryRequest();
q.setFilter(Document.parse(queryString));
// String queryString = String.format("{\"_theDocument.nome\" :{\"$eq\" : \"Landro (Comune di Tambre, BL) \"},\"_theDocument.dataInizioProgetto\":{\"$eq\":\"2021-05-29T00:00:00\"}}\n" +
// "}");
// q.setFilter(Document.parse(queryString));
//
it=client.query(q); it=client.query(q);

View File

@ -26,6 +26,7 @@ import org.gcube.application.geoportal.common.utils.tests.GCubeTest;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.rmi.RemoteException; import java.rmi.RemoteException;
import java.sql.SQLOutput;
import java.time.Instant; import java.time.Instant;
import java.util.*; import java.util.*;
import java.util.concurrent.*; import java.util.concurrent.*;
@ -33,6 +34,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Supplier; import java.util.function.Supplier;
import java.util.regex.Matcher;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.gcube.application.geoportal.client.plugins.GeoportalAbstractPlugin.projects; import static org.gcube.application.geoportal.client.plugins.GeoportalAbstractPlugin.projects;
@ -46,6 +48,7 @@ public class ExportConcessioniAsProjects {
public static void main(String[] args) throws InterruptedException, IOException { public static void main(String[] args) throws InterruptedException, IOException {
// read from imported folder // read from imported folder
File dir= new File("/Users/fabioisti/git/gcube-cms-suite/import1668778302348"); File dir= new File("/Users/fabioisti/git/gcube-cms-suite/import1668778302348");
@ -77,12 +80,29 @@ public class ExportConcessioniAsProjects {
Files.saveString(importFolder.sort(),new File(dir,"relationships.csv").toPath()); Files.saveString(importFolder.sort(),new File(dir,"relationships.csv").toPath());
TokenSetter.set(GCubeTest.getContext());
if(!pushProjects){ if(!pushProjects){
System.out.println("PUSH PROJECTS FLAG IS FALSE.. CLOSING."); System.out.println("PUSH PROJECTS FLAG IS FALSE.. CLOSING.");
StringBuilder reportBuilder = new StringBuilder();
StringBuilder concReportBuilder = new StringBuilder();
importFolder.getRelationshipMap().forEach((s,l)->{
l.forEach(c->concReportBuilder.append(c.getReport().getStatus()+","+c.getReport().getWarningMessages()+","+c.getMongo_id()+","+c.getNome()+"\n"));
try {
// reportBuilder.append(getExisting(l.get(0),client).size()+","+s+"\n");
} catch (Throwable e) {
log.error("Unable to get count for {} ",s,e);
throw new RuntimeException(e);
}
});
Files.saveString(reportBuilder.toString(),new File(dir,"found.csv").toPath());
Files.saveString(concReportBuilder.toString(),new File(dir,"originalStatuses.csv").toPath());
System.exit(0); System.exit(0);
} }
TokenSetter.set(GCubeTest.getContext());
// StorageUtils storage = new StorageUtils(); // StorageUtils storage = new StorageUtils();
@ -112,7 +132,7 @@ public class ExportConcessioniAsProjects {
if(delete.get()){ if(delete.get()){
log.debug("Deleting error set for {}",c.getNome()); log.debug("Deleting error set for {}",c.getNome());
for (Project project : existing) { for (Project project : existing) {
client.deleteById(project.getId()); client.deleteById(project.getId(),true);
} }
}else publish.set(false); }else publish.set(false);
} }
@ -450,56 +470,60 @@ public class ExportConcessioniAsProjects {
public static String quote(String string) { public static String quote(String string) {
if (string == null || string.length() == 0) { if(string!=null)
return "\"\""; // return "\""+string.replaceAll("\"","\"")+"\"";
} return "\""+string.replaceAll("\"",Matcher.quoteReplacement("\\\""))+"\"";
else return "\"\"";
char c = 0; // if (string == null || string.length() == 0) {
int i; // return "\"\"";
int len = string.length(); // }
StringBuilder sb = new StringBuilder(len + 4); //
String t; // char c = 0;
// int i;
sb.append('"'); // int len = string.length();
for (i = 0; i < len; i += 1) { // StringBuilder sb = new StringBuilder(len + 4);
c = string.charAt(i); // String t;
switch (c) { //
case '\\': // sb.append('"');
case '"': // for (i = 0; i < len; i += 1) {
sb.append('\\'); // c = string.charAt(i);
sb.append(c); // switch (c) {
break; // case '\\':
case '/': // case '"':
// if (b == '<') { // sb.append('\\');
sb.append('\\'); // sb.append(c);
// } // break;
sb.append(c); // case '/':
break; // // if (b == '<') {
case '\b': // sb.append('\\');
sb.append("\\b"); // // }
break; // sb.append(c);
case '\t': // break;
sb.append("\\t"); // case '\b':
break; // sb.append("\\b");
case '\n': // break;
sb.append("\\n"); // case '\t':
break; // sb.append("\\t");
case '\f': // break;
sb.append("\\f"); // case '\n':
break; // sb.append("\\n");
case '\r': // break;
sb.append("\\r"); // case '\f':
break; // sb.append("\\f");
default: // break;
if (c < ' ') { // case '\r':
t = "000" + Integer.toHexString(c); // sb.append("\\r");
sb.append("\\u" + t.substring(t.length() - 4)); // break;
} else { // default:
sb.append(c); // if (c < ' ') {
} // t = "000" + Integer.toHexString(c);
} // sb.append("\\u" + t.substring(t.length() - 4));
} // } else {
sb.append('"'); // sb.append(c);
return sb.toString(); // }
// }
// }
// sb.append('"');
// return sb.toString();
} }
} }