diff --git a/pom.xml b/pom.xml
index 2bec794..05d5a63 100644
--- a/pom.xml
+++ b/pom.xml
@@ -107,13 +107,12 @@
org.gcube.contentmanagement
storage-manager-core
-
- [2.0.0, 2.9.0-SNAPSHOT)
+ [2.0.0, 3.0.0-SNAPSHOT)
org.gcube.contentmanagement
storage-manager-wrapper
- [2.0.0, 2.9.0-SNAPSHOT)
+ [2.0.0, 3.0.0-SNAPSHOT)
diff --git a/use-cases/src/test/java/org/gcube/application/cms/usecases/ClearConcessioni.java b/use-cases/src/test/java/org/gcube/application/cms/usecases/ClearConcessioni.java
index 40161a5..7103a6e 100644
--- a/use-cases/src/test/java/org/gcube/application/cms/usecases/ClearConcessioni.java
+++ b/use-cases/src/test/java/org/gcube/application/cms/usecases/ClearConcessioni.java
@@ -1,5 +1,6 @@
package org.gcube.application.cms.usecases;
+import lombok.extern.slf4j.Slf4j;
import org.gcube.application.cms.tests.TokenSetter;
import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI;
@@ -7,10 +8,14 @@ import org.gcube.application.geoportal.common.model.legacy.Concessione;
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.statefulMongoConcessioni;
+@Slf4j
public class ClearConcessioni {
public static void main(String[] args) throws Exception {
@@ -26,34 +31,49 @@ public class ClearConcessioni {
AtomicLong count=new AtomicLong(0);
AtomicLong nullCount=new AtomicLong(0);
AtomicLong errCount=new AtomicLong(0);
-
+ AtomicLong found=new AtomicLong(0);
Iterator it=null;
// it=manager.getList();
- it=manager.search("{\"nome\" : {\"$regex\" : \"Mock.*\"}}");
+ it=manager.search("{\"creationUser\" : {\"$ne\" : \"francesco.mangiacrapa\"}}");
+
+ ExecutorService service = Executors.newFixedThreadPool(10);
+
it.forEachRemaining((Concessione c)->{
- try{
- String currentId=c.getMongo_id();
- if(currentId==null) {
- System.out.println("ID IS NULL " + c);
- nullCount.incrementAndGet();
- }
- else
- if(toSkipIds.contains(currentId))
- System.out.println("Skipping "+currentId);
- else {
- System.out.println("Deleting " + c.getMongo_id());
- manager.deleteById(c.getMongo_id(),true);
+ found.incrementAndGet();
+ service.submit(new Runnable() {
+ @Override
+ public void run() {
+ try{
+ TokenSetter.set("/gcube/devsec/devVRE");
+ String currentId=c.getMongo_id();
+ if(currentId==null) {
+ System.out.println("ID IS NULL " + c);
+ nullCount.incrementAndGet();
+ }
+ else
+ if(toSkipIds.contains(currentId))
+ System.out.println("Skipping "+currentId);
+ else {
+ System.out.println("Deleting " + c.getMongo_id());
+ manager.deleteById(c.getMongo_id(),true);
+ }
+ }catch(Throwable throwable){
+ System.err.println(throwable);
+ errCount.incrementAndGet();
+ }finally {
+ count.incrementAndGet();
}
- }catch(Throwable throwable){
- System.err.println(throwable);
- errCount.incrementAndGet();
- }finally {
- count.incrementAndGet();
- }
+ }
+ });
});
+ while (!service.awaitTermination(2, TimeUnit.MINUTES)) {
+ log.info("Waiting .. completed {}, out of {} ",count.get(),found.get());
+ if(found.get()==count.get()) service.shutdown();
+ }
+
System.out.println("Done "+count.get()+" [null : "+nullCount.get()+", err : "+errCount.get()+"]");
}