DeIndexing have been separated for Simple and Default3Phase Manager
This commit is contained in:
parent
c9ef00c108
commit
4cf6d1e5d4
|
@ -13,8 +13,10 @@ import org.gcube.application.cms.plugins.implementations.executions.GuardedStepE
|
||||||
import org.gcube.application.cms.plugins.reports.EventExecutionReport;
|
import org.gcube.application.cms.plugins.reports.EventExecutionReport;
|
||||||
import org.gcube.application.cms.plugins.reports.StepExecutionReport;
|
import org.gcube.application.cms.plugins.reports.StepExecutionReport;
|
||||||
import org.gcube.application.cms.plugins.requests.BaseRequest;
|
import org.gcube.application.cms.plugins.requests.BaseRequest;
|
||||||
|
import org.gcube.application.geoportal.common.model.JSONPathWrapper;
|
||||||
import org.gcube.application.geoportal.common.model.configuration.Configuration;
|
import org.gcube.application.geoportal.common.model.configuration.Configuration;
|
||||||
import org.gcube.application.geoportal.common.model.configuration.Index;
|
import org.gcube.application.geoportal.common.model.configuration.Index;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.filesets.RegisteredFileSet;
|
||||||
import org.gcube.application.geoportal.common.model.document.lifecycle.LifecycleInformation;
|
import org.gcube.application.geoportal.common.model.document.lifecycle.LifecycleInformation;
|
||||||
import org.gcube.application.geoportal.common.model.plugins.OperationDescriptor;
|
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.rest.ConfigurationException;
|
||||||
|
@ -98,7 +100,7 @@ public class Default3PhaseManager extends SimpleLifeCycleManager implements Life
|
||||||
});
|
});
|
||||||
|
|
||||||
//Updated by Francesco
|
//Updated by Francesco
|
||||||
setStep(super.unPublishStep());
|
setStep(d3PhaseUnPublishStep());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Default3PhaseManager() {
|
public Default3PhaseManager() {
|
||||||
|
@ -108,6 +110,40 @@ public class Default3PhaseManager extends SimpleLifeCycleManager implements Life
|
||||||
DESCRIPTOR.setLabel("Default 3-Phase");
|
DESCRIPTOR.setLabel("Default 3-Phase");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Updated by Francesco. DeIndexing (only) from PublicIndex and InternalIndex (GIS-CENTROIDS plugin with 'public' and "internal" flag)
|
||||||
|
protected GuardedStepExecution d3PhaseUnPublishStep() {
|
||||||
|
|
||||||
|
return new GuardedStepExecution(STEPS.UNPUBLISH) {
|
||||||
|
@Override
|
||||||
|
protected StepExecutionReport run() throws Exception {
|
||||||
|
log.info( STEPS.UNPUBLISH+ " running...");
|
||||||
|
//DeMaterialize
|
||||||
|
JSONPathWrapper wrapper = new JSONPathWrapper(theReport.getTheRequest().getDocument().getTheDocument().toJson());
|
||||||
|
for (String s : wrapper.getMatchingPaths("$..[?(@." + RegisteredFileSet.PAYLOADS + ")]")){
|
||||||
|
log.info("Requesting dematerialization for {} ",s);
|
||||||
|
for(MaterializationPlugin mat : getMaterializers(theReport.getTheRequest()))
|
||||||
|
theReport = deMaterialize(theReport,mat,new Document("fileSetPath",s));
|
||||||
|
if(!theReport.getToSetLifecycleInformation().getLastOperationStatus().equals(LifecycleInformation.Status.OK))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//DeIndex
|
||||||
|
if(theReport.getToSetLifecycleInformation().getLastOperationStatus().equals(LifecycleInformation.Status.OK)) {
|
||||||
|
for(IndexerPluginInterface indexer : getIndexers(theReport.getTheRequest())) {
|
||||||
|
log.info("Requesting deindexing for {} ",indexer.getDescriptor());
|
||||||
|
theReport = deIndex(theReport,indexer,getPublicIndexParams(theReport.getTheRequest()));
|
||||||
|
theReport = deIndex(theReport,indexer,getInternalIndexParams(theReport.getTheRequest()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(theReport.getToSetLifecycleInformation().getLastOperationStatus().equals(LifecycleInformation.Status.OK))
|
||||||
|
theReport.getToSetLifecycleInformation().setPhase(LifecycleInformation.CommonPhases.DRAFT_PHASE);
|
||||||
|
|
||||||
|
|
||||||
|
return theReport;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Configuration getCurrentConfiguration(BaseRequest req) throws ConfigurationException {
|
public Configuration getCurrentConfiguration(BaseRequest req) throws ConfigurationException {
|
||||||
|
@ -130,6 +166,8 @@ public class Default3PhaseManager extends SimpleLifeCycleManager implements Life
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected Document getInternalIndexParams(BaseRequest req){
|
protected Document getInternalIndexParams(BaseRequest req){
|
||||||
Document callParameters = new Document();
|
Document callParameters = new Document();
|
||||||
|
|
||||||
|
|
|
@ -134,13 +134,8 @@ public class SimpleLifeCycleManager extends AbstractLifeCycleManager implements
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
setStep(unPublishStep());
|
//Updated by Francesco. DeIndexing (only) from PublicIndexParams (GIS-CENTROIDS plugin with 'public' flag)
|
||||||
}
|
setStep(new GuardedStepExecution(Steps.UNPUBLISH) {
|
||||||
|
|
||||||
//Updated by Francesco
|
|
||||||
protected GuardedStepExecution unPublishStep() {
|
|
||||||
|
|
||||||
return new GuardedStepExecution(Steps.UNPUBLISH) {
|
|
||||||
@Override
|
@Override
|
||||||
protected StepExecutionReport run() throws Exception {
|
protected StepExecutionReport run() throws Exception {
|
||||||
log.info(Steps.UNPUBLISH+ " running...");
|
log.info(Steps.UNPUBLISH+ " running...");
|
||||||
|
@ -167,7 +162,7 @@ public class SimpleLifeCycleManager extends AbstractLifeCycleManager implements
|
||||||
|
|
||||||
return theReport;
|
return theReport;
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void blockNonDraft(EventExecutionReport report) throws InvalidPluginRequestException {
|
protected void blockNonDraft(EventExecutionReport report) throws InvalidPluginRequestException {
|
||||||
|
|
Loading…
Reference in New Issue