diff --git a/cms-test-commons/pom.xml b/cms-test-commons/pom.xml index 1156066..601fc78 100644 --- a/cms-test-commons/pom.xml +++ b/cms-test-commons/pom.xml @@ -22,9 +22,9 @@ - scm:git:${gitBaseUrl}/${project.artifactId}.git - scm:git:${gitBaseUrl}/${project.artifactId}.git - ${gitBaseUrl}/${project.artifactId}.git + scm:git:${gitBaseUrl}/gcube-cms-suite + scm:git:${gitBaseUrl}/gcube-cms-suite + ${gitBaseUrl}/gcube-cms-suite diff --git a/geoportal-client/pom.xml b/geoportal-client/pom.xml index a69fed2..82ca912 100644 --- a/geoportal-client/pom.xml +++ b/geoportal-client/pom.xml @@ -20,9 +20,9 @@ - scm:git:${gitBaseUrl}/${project.artifactId}.git - scm:git:${gitBaseUrl}/${project.artifactId}.git - ${gitBaseUrl}/${project.artifactId}.git + scm:git:${gitBaseUrl}/gcube-cms-suite + scm:git:${gitBaseUrl}/gcube-cms-suite + ${gitBaseUrl}/gcube-cms-suite diff --git a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatelessClientTests.java b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatelessClientTests.java index 495f853..15f9ff6 100644 --- a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatelessClientTests.java +++ b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatelessClientTests.java @@ -15,7 +15,7 @@ import org.gcube.application.cms.tests.model.TestFilters; import org.gcube.application.cms.tests.model.TestModel; import org.gcube.application.cms.tests.model.TestQueries; import org.gcube.application.geoportal.client.utils.Queries; -import org.gcube.application.geoportal.common.model.legacy.Concessione; +import org.gcube.application.geoportal.common.model.legacy.*; import org.gcube.application.geoportal.common.model.legacy.Concessione.Paths; import org.gcube.application.geoportal.common.model.legacy.report.ValidationReport.ValidationStatus; import org.gcube.application.geoportal.common.model.rest.AddSectionToConcessioneRequest; @@ -142,12 +142,23 @@ public class StatelessClientTests extends BasicVreTests{ public void testCleanFileSet() throws Exception { Concessione testObject=prepare(); + System.out.println("Object is "+testObject.getPosizionamentoScavo()); //Precheck to be sure assertFalse(testObject.getPosizionamentoScavo().getActualContent().isEmpty()); assertFalse(testObject.getPianteFineScavo().get(0).getActualContent().isEmpty()); client.unPublish(testObject.getMongo_id()); + // check unpublish + testObject= client.getById(testObject.getMongo_id()); + for(LayerConcessione l:testObject.getPianteFineScavo()) + for(PersistedContent pc: l.getActualContent()) + if(pc instanceof GeoServerContent) throw new Exception ("Concessione not properly unpublished"); + + for(PersistedContent pc: testObject.getPosizionamentoScavo().getActualContent()) + if(pc instanceof GeoServerContent) throw new Exception ("Concessione not properly unpublished"); + + //Clear pos testObject=client.cleanFileSet(testObject.getMongo_id(),Paths.POSIZIONAMENTO); assertTrue(testObject.getPosizionamentoScavo().getActualContent().isEmpty()); @@ -159,7 +170,7 @@ public class StatelessClientTests extends BasicVreTests{ private Concessione prepare() throws Exception { - int numImgs=5; + int numImgs=1; Concessione c= client.createNew(TestModel.prepareConcessione(1,numImgs)); StorageUtils storage = new StorageUtils(); @@ -171,10 +182,12 @@ public class StatelessClientTests extends BasicVreTests{ client.registerFileSet(mongoId, FileSets.prepareRequest(storage,Paths.RELAZIONE,new File(TestModel.getBaseFolder(),"relazione.pdf"))); + + for(int i=0;i - scm:git:${gitBaseUrl}/${project.artifactId}.git - scm:git:${gitBaseUrl}/${project.artifactId}.git - ${gitBaseUrl}/${project.artifactId}.git + scm:git:${gitBaseUrl}/gcube-cms-suite + scm:git:${gitBaseUrl}/gcube-cms-suite + ${gitBaseUrl}/gcube-cms-suite diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/legacy/Concessione.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/legacy/Concessione.java index f215e17..0a67088 100644 --- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/legacy/Concessione.java +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/legacy/Concessione.java @@ -312,25 +312,31 @@ public class Concessione extends Record{ setLicenzaID(ConstraintCheck.defaultFor(getLicenzaID(), "CC0-1.0").evaluate()); - - if(relazioneScavo!=null) { + if(relazioneScavo == null) relazioneScavo=new RelazioneScavo(); + relazioneScavo.setTitolo(ConstraintCheck.defaultFor(relazioneScavo.getTitolo(),getNome()+" relazione di scavo").evaluate()); relazioneScavo.setSoggetto(ConstraintCheck.defaultFor(relazioneScavo.getSoggetto(),getSoggetto()).evaluate()); relazioneScavo.setCreationTime(ConstraintCheck.defaultFor(relazioneScavo.getCreationTime(),getCreationTime()).evaluate()); relazioneScavo.setLicenseID(ConstraintCheck.defaultFor(getLicenzaID(), "CC-BY-4.0").evaluate()); relazioneScavo.setPolicy(getPolicy()); - } - if(abstractRelazione!=null) { + + if(abstractRelazione == null) abstractRelazione = new AbstractRelazione(); abstractRelazione.setTitolo(ConstraintCheck.defaultFor(abstractRelazione.getTitolo(),getNome()+" abstract relazione di scavo").evaluate()); abstractRelazione.setCreationTime(ConstraintCheck.defaultFor(abstractRelazione.getCreationTime(),getCreationTime()).evaluate()); abstractRelazione.setLicenseID(ConstraintCheck.defaultFor(getLicenzaID(), "CC-BY-4.0").evaluate()); abstractRelazione.setPolicy(getPolicy()); - } if(immaginiRappresentative!=null) for(UploadedImage img : immaginiRappresentative) { +// String evaluatedTitle="Empty img"; +// img.setTitolo(ConstraintCheck.defaultFor(img.getTitolo(), +// getNome()+" abstract relazione di scavo").evaluate()); +// +// if(!img.getActualContent().isEmpty()){ +// +// } img.setSoggetto(ConstraintCheck.defaultFor(img.getSoggetto(),getSoggetto()).evaluate()); img.setCreationTime(ConstraintCheck.defaultFor(img.getCreationTime(),getCreationTime()).evaluate()); img.setPolicy(ConstraintCheck.defaultFor(img.getPolicy(),getPolicy()).evaluate()); diff --git a/geoportal-service/CHANGELOG.md b/geoportal-service/CHANGELOG.md index cc4f7b9..42651a9 100644 --- a/geoportal-service/CHANGELOG.md +++ b/geoportal-service/CHANGELOG.md @@ -4,7 +4,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [v1.0.6] 2021-09-20 Refactored repositories - +Fixes #22193 ## [v1.0.5-SNAPSHOT] 2021-07-23 Upgrade to gcube-smartgears-bom 2.1.0 diff --git a/geoportal-service/pom.xml b/geoportal-service/pom.xml index 91ea819..4c95743 100644 --- a/geoportal-service/pom.xml +++ b/geoportal-service/pom.xml @@ -23,9 +23,9 @@ - scm:git:${gitBaseUrl}/${project.artifactId}.git - scm:git:${gitBaseUrl}/${project.artifactId}.git - ${gitBaseUrl}/${project.artifactId}.git + scm:git:${gitBaseUrl}/gcube-cms-suite + scm:git:${gitBaseUrl}/gcube-cms-suite + ${gitBaseUrl}/gcube-cms-suite diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java index afcb221..8cdfc95 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java @@ -316,7 +316,7 @@ public class ConcessioniMongoManager extends MongoManager{ index.removeCentroid(record); report.addMessage(ValidationStatus.PASSED, "Removed centroid"); } catch (SDIInteractionException | SQLException | ConfigurationException e) { - log.error("Unable to reove from index {} ",record,e); + log.error("Unable to remove from index {} ",record,e); report.addMessage(ValidationStatus.WARNING, "Internal error while removing from index."); } return record; @@ -386,16 +386,24 @@ public class ConcessioniMongoManager extends MongoManager{ try { sdi.deleteContent((GeoServerContent) p); toRemove.add(p); - } catch (MalformedURLException e) { - e.printStackTrace(); - } catch (RemoteServiceException e) { - e.printStackTrace(); + } catch (Throwable t) { + report.addMessage(ValidationStatus.WARNING,"Cannot delete "+((GeoServerContent) p).getFeatureType()); } } } + // Remove GIS coordinates + ((LayerConcessione) c).setLayerID(null); + ((LayerConcessione) c).setBbox(null); + ((LayerConcessione) c).setWmsLink(null); + ((LayerConcessione) c).setWorkspace(null); + + //Remove reference to removed content c.getActualContent().removeAll(toRemove); } } + + concessione.setCentroidLat(null); + concessione.setCentroidLong(null); }catch(SDIInteractionException e){ report.addMessage(ValidationStatus.WARNING, "Unable to unpublish layers "+e.getMessage()); } 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 b8ffc04..15cdc48 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 @@ -268,6 +268,8 @@ public class ConcessioniOverMongoTest extends BasicServiceTestUnit{ //Expecting error for deletion assertTrue(resp.getStatus()>=300); System.out.println("Error for deletion is "+resp.readEntity(String.class)); + + //unpublish resp= target.path(InterfaceConstants.Methods.PUBLISH_PATH).path(published.getMongo_id()). request(MediaType.APPLICATION_JSON).delete(); diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/caches/Caches.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/caches/Caches.java index 95b29d3..00c5081 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/caches/Caches.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/caches/Caches.java @@ -123,10 +123,11 @@ public class Caches extends BasicServiceTestUnit { @Override public void run() { try { -// System.out.println(ImplementationProvider.get().getStorageProvider().getObject().getURL(id)); - storage.getURL(id); -// } catch (ConfigurationException e) { -// e.printStackTrace(); + try {Thread.sleep(1000);} catch (InterruptedException i) {} + System.out.println(ImplementationProvider.get().getStorageProvider().getObject().getURL(id)); +// storage.getURL(id); + } catch (ConfigurationException e) { + e.printStackTrace(); } catch (MongoWaitQueueFullException e) { log.info("Too many connections... "); }finally{ diff --git a/geoportal-service/src/test/resources/logback.xml b/geoportal-service/src/test/resources/logback.xml index 8ec1f7c..ef54588 100644 --- a/geoportal-service/src/test/resources/logback.xml +++ b/geoportal-service/src/test/resources/logback.xml @@ -10,7 +10,7 @@ - + diff --git a/pom.xml b/pom.xml index bc646ea..bec41f5 100644 --- a/pom.xml +++ b/pom.xml @@ -25,9 +25,9 @@ - scm:git:${gitBaseUrl}/${project.artifactId}.git - scm:git:${gitBaseUrl}/${project.artifactId}.git - ${gitBaseUrl}/${project.artifactId}.git + scm:git:${gitBaseUrl}/gcube-cms-suite + scm:git:${gitBaseUrl}/gcube-cms-suite + ${gitBaseUrl}/gcube-cms-suite diff --git a/use-cases/CHANGELOG.md b/use-cases/CHANGELOG.md index af727d5..ab99ae3 100644 --- a/use-cases/CHANGELOG.md +++ b/use-cases/CHANGELOG.md @@ -3,4 +3,4 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm # Changelog for org.gcube.application.geoportal-client ## [v1.0.0] - 2021-09-20 -First release, extracted from client +First release, extracted from client \ No newline at end of file diff --git a/use-cases/pom.xml b/use-cases/pom.xml index 0c20fba..646bac3 100644 --- a/use-cases/pom.xml +++ b/use-cases/pom.xml @@ -18,9 +18,9 @@ - scm:git:${gitBaseUrl}/${project.artifactId}.git - scm:git:${gitBaseUrl}/${project.artifactId}.git - ${gitBaseUrl}/${project.artifactId}.git + scm:git:${gitBaseUrl}/gcube-cms-suite + scm:git:${gitBaseUrl}/gcube-cms-suite + ${gitBaseUrl}/gcube-cms-suite 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 7103a6e..b065cf3 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 @@ -35,7 +35,7 @@ public class ClearConcessioni { Iterator it=null; // it=manager.getList(); - it=manager.search("{\"creationUser\" : {\"$ne\" : \"francesco.mangiacrapa\"}}"); + it=manager.search("{\"creationUser\" : {\"$exists\" : \"false\"}}"); ExecutorService service = Executors.newFixedThreadPool(10); @@ -62,6 +62,7 @@ public class ClearConcessioni { }catch(Throwable throwable){ System.err.println(throwable); errCount.incrementAndGet(); + try {Thread.sleep(1000);} catch (InterruptedException i) {} }finally { count.incrementAndGet(); } diff --git a/use-cases/src/test/java/org/gcube/application/cms/usecases/StressTest.java b/use-cases/src/test/java/org/gcube/application/cms/usecases/StressTest.java index eb23ef1..2412cdc 100644 --- a/use-cases/src/test/java/org/gcube/application/cms/usecases/StressTest.java +++ b/use-cases/src/test/java/org/gcube/application/cms/usecases/StressTest.java @@ -4,8 +4,13 @@ import lombok.extern.slf4j.Slf4j; import org.gcube.application.cms.tests.TokenSetter; import org.gcube.application.cms.tests.model.TestModel; import org.gcube.application.geoportal.common.model.legacy.Concessione; +import org.gcube.application.geoportal.common.model.rest.AddSectionToConcessioneRequest; import org.gcube.application.geoportal.common.rest.MongoConcessioni; +import org.gcube.application.geoportal.common.utils.FileSets; +import org.gcube.application.geoportal.common.utils.StorageUtils; +import java.io.File; +import java.io.FileNotFoundException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; @@ -17,26 +22,33 @@ import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.mon public class StressTest { - private static ExecutorService service = Executors.newFixedThreadPool(100); + private static ExecutorService service = Executors.newFixedThreadPool(5); - public static void main(String[] args) { + public static void main(String[] args) throws FileNotFoundException { TokenSetter.set("/gcube/devsec/devVRE"); AtomicLong executed=new AtomicLong(0); - int numRequests=10000; + AddSectionToConcessioneRequest request= FileSets.prepareRequest( + new StorageUtils(), Concessione.Paths.RELAZIONE,new File(TestModel.getBaseFolder(),"relazione.pdf")); + + int numRequests=100000; for(int i=0;i