From cdff7547a515b7e62293f823300010fea882fc55 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Tue, 22 Nov 2022 14:58:17 +0100 Subject: [PATCH] Testing --- .../common/utils/tests/GCubeTest.java | 4 +- .../usecases/ExportConcessioniAsProjects.java | 78 ++++++++++++++++--- 2 files changed, 69 insertions(+), 13 deletions(-) diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/tests/GCubeTest.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/tests/GCubeTest.java index bcf8d7e..87ed751 100644 --- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/tests/GCubeTest.java +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/utils/tests/GCubeTest.java @@ -14,8 +14,8 @@ public class GCubeTest { // InterfaceConstants.SERVICE_CLASS="Application"; // InterfaceConstants.SERVICE_NAME="GeoPortal"; - // testContext = "/pred4s/preprod/preVRE"; - testContext= "/gcube/devsec/devVRE"; + testContext = "/pred4s/preprod/preVRE"; + // testContext= "/gcube/devsec/devVRE"; System.out.println("TEST CONTEXT = "+testContext); return testContext; diff --git a/use-cases/src/test/java/org/gcube/application/cms/usecases/ExportConcessioniAsProjects.java b/use-cases/src/test/java/org/gcube/application/cms/usecases/ExportConcessioniAsProjects.java index 3917758..e8c2210 100644 --- a/use-cases/src/test/java/org/gcube/application/cms/usecases/ExportConcessioniAsProjects.java +++ b/use-cases/src/test/java/org/gcube/application/cms/usecases/ExportConcessioniAsProjects.java @@ -90,36 +90,37 @@ public class ExportConcessioniAsProjects { AtomicLong warnCount = new AtomicLong(0); AtomicLong errCount = new AtomicLong(0); - ExecutorService service = Executors.newFixedThreadPool(3); + ExecutorService service = Executors.newFixedThreadPool(1); long startProcess = System.currentTimeMillis(); importFolder.getRelationshipMap().forEach((s,l)->{ - AtomicReference isSetOk = new AtomicReference<>(true); + AtomicReference publish = new AtomicReference<>(true); + AtomicReference delete = new AtomicReference<>(false); // Check if exists Concessione c = l.get(0); try { List existing= getExisting(c,client); - if(existing.isEmpty()) { - log.info("Not Found"); - }else { + if(existing.isEmpty()) log.info("Not Found {}",c.getNome()); + else { + // found projects, check status existing.forEach(project -> { if (!project.getLifecycleInformation().getLastOperationStatus().equals(LifecycleInformation.Status.OK)) - isSetOk.set(false); + delete.set(true); }); - if(!isSetOk.get()){ + if(delete.get()){ log.debug("Deleting error set for {}",c.getNome()); for (Project project : existing) { client.deleteById(project.getId()); } - } + }else publish.set(false); } }catch(NullPointerException e){} catch (Throwable t){throw new RuntimeException("Unexpected Exception while checking for "+c.getNome());} - - if(!isSetOk.get()) { + log.info("Project name {} publish : {}",s,publish); + if(publish.get()) { String relationshipTarget = null; for (Concessione concessione : l) { @@ -426,7 +427,7 @@ public class ExportConcessioniAsProjects { private static List getExisting(Concessione c,Projects client) throws RemoteException, JsonProcessingException, NullPointerException { try { QueryRequest req = new QueryRequest(); - String queryString = String.format("{\"_theDocument.nome\" :{\"$eq\" : \"%1$s\"}}", c.getNome()); + String queryString = String.format("{\"_theDocument.nome\" :{\"$eq\" : %1$s}}", quote(c.getNome())); log.debug("Query String is {}", queryString); req.setFilter(Document.parse(queryString)); AtomicInteger count = new AtomicInteger(0); @@ -446,4 +447,59 @@ public class ExportConcessioniAsProjects { throw t; } } + + + public static String quote(String string) { + if (string == null || string.length() == 0) { + return "\"\""; + } + + char c = 0; + int i; + int len = string.length(); + StringBuilder sb = new StringBuilder(len + 4); + String t; + + sb.append('"'); + for (i = 0; i < len; i += 1) { + c = string.charAt(i); + switch (c) { + case '\\': + case '"': + sb.append('\\'); + sb.append(c); + break; + case '/': + // if (b == '<') { + sb.append('\\'); + // } + sb.append(c); + break; + case '\b': + sb.append("\\b"); + break; + case '\t': + sb.append("\\t"); + break; + case '\n': + sb.append("\\n"); + break; + case '\f': + sb.append("\\f"); + break; + case '\r': + sb.append("\\r"); + break; + default: + if (c < ' ') { + t = "000" + Integer.toHexString(c); + sb.append("\\u" + t.substring(t.length() - 4)); + } else { + sb.append(c); + } + } + } + sb.append('"'); + return sb.toString(); + } }