From 9a563d578ee1443309d36cafdd0a85160784bde8 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Fri, 10 May 2024 11:39:26 +0200 Subject: [PATCH] Updated onDeleteDocument and dematerialize methods. Managed `ignore_errors` parameter --- .../implementations/SimpleLifeCycleManager.java | 17 +++++++++++++++-- .../cms/sdi/plugins/SDIMaterializerPlugin.java | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/default-lc-managers/src/main/java/org/gcube/application/cms/plugins/implementations/SimpleLifeCycleManager.java b/default-lc-managers/src/main/java/org/gcube/application/cms/plugins/implementations/SimpleLifeCycleManager.java index 7238740..fb51301 100644 --- a/default-lc-managers/src/main/java/org/gcube/application/cms/plugins/implementations/SimpleLifeCycleManager.java +++ b/default-lc-managers/src/main/java/org/gcube/application/cms/plugins/implementations/SimpleLifeCycleManager.java @@ -34,6 +34,7 @@ import org.gcube.application.geoportal.common.model.plugins.OperationDescriptor; import org.gcube.application.geoportal.common.model.rest.ConfigurationException; import org.gcube.application.geoportal.common.model.useCaseDescriptor.HandlerDeclaration; import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor; +import org.gcube.application.geoportal.common.rest.InterfaceConstants; import org.gcube.application.geoportal.common.utils.Files; import lombok.extern.slf4j.Slf4j; @@ -187,6 +188,9 @@ public class SimpleLifeCycleManager extends AbstractLifeCycleManager implements return super.onUpdateDocument(report); } + /** + * Updated by Francesco M. + */ @Override protected EventExecutionReport onDeleteDocument(EventExecutionReport report) throws ConfigurationException, InvalidPluginRequestException, MaterializationException, EventException { // Block non draft only if not force @@ -197,8 +201,17 @@ public class SimpleLifeCycleManager extends AbstractLifeCycleManager implements JSONPathWrapper wrapper = new JSONPathWrapper(report.getTheRequest().getDocument().getTheDocument().toJson()); for (String s : wrapper.getMatchingPaths("$..[?(@." + RegisteredFileSet.PAYLOADS + ")]")){ log.info("Requesting dematerialization for {} ",s); - for(MaterializationPlugin mat : getMaterializers(report.getTheRequest())) - report = deMaterialize(report,mat,new Document("fileSetPath",s)); + for(MaterializationPlugin mat : getMaterializers(report.getTheRequest())) { + Document params = new Document("fileSetPath",s); + Boolean ignoreErrors = false; + try { + ignoreErrors = (Boolean) report.getTheRequest().getCallParameters().get(InterfaceConstants.Parameters.IGNORE_ERRORS); + }catch (Exception e) { + ignoreErrors = false; + } + params.append(InterfaceConstants.Parameters.IGNORE_ERRORS, ignoreErrors); + report = deMaterialize(report,mat, params); + } if(!report.getToSetLifecycleInformation().getLastOperationStatus().equals(LifecycleInformation.Status.OK)) break; } diff --git a/sdi-plugins/src/main/java/org/gcube/application/cms/sdi/plugins/SDIMaterializerPlugin.java b/sdi-plugins/src/main/java/org/gcube/application/cms/sdi/plugins/SDIMaterializerPlugin.java index b2e2ad2..1b4e668 100644 --- a/sdi-plugins/src/main/java/org/gcube/application/cms/sdi/plugins/SDIMaterializerPlugin.java +++ b/sdi-plugins/src/main/java/org/gcube/application/cms/sdi/plugins/SDIMaterializerPlugin.java @@ -224,7 +224,7 @@ public class SDIMaterializerPlugin extends AbstractPlugin implements Materializa ignoreErrors = (Boolean) request.getCallParameters().get(InterfaceConstants.Parameters.IGNORE_ERRORS); log.info("Serving DeMaterialize with {} as: {} ",InterfaceConstants.Parameters.IGNORE_ERRORS, ignoreErrors); }catch (Exception e) { - + ignoreErrors = false; } try{ SDIManagerWrapper sdi=getSDIManager();