ProcessNode refactoring

This commit is contained in:
Michele Artini 2024-01-18 08:44:26 +01:00
parent 7d327998be
commit cb56e9c823
20 changed files with 43 additions and 59 deletions

View File

@ -26,7 +26,7 @@ import eu.dnetlib.wfs.utils.XpathFilterFactory;
import jakarta.transaction.Transactional;
@WfNode("md_clean")
public class MdCleanerJobNode extends AbstractJobNode {
public class MdCleanerJobNode extends ProcessNode {
@WfInputParam
private Datasource ds;

View File

@ -27,7 +27,7 @@ import eu.dnetlib.wfs.utils.XpathFilterFactory;
import jakarta.transaction.Transactional;
@WfNode("md_collect_incremental")
public class MdCollectIncrementalJobNode extends AbstractJobNode {
public class MdCollectIncrementalJobNode extends ProcessNode {
@WfInputParam
private Datasource ds;

View File

@ -25,7 +25,7 @@ import eu.dnetlib.wfs.utils.XpathFilterFactory;
import jakarta.transaction.Transactional;
@WfNode("md_collect_refresh")
public class MdCollectRefreshJobNode extends AbstractJobNode {
public class MdCollectRefreshJobNode extends ProcessNode {
@WfInputParam
private Datasource ds;

View File

@ -24,7 +24,7 @@ import eu.dnetlib.wfs.output.oai.OaiBackend;
import jakarta.transaction.Transactional;
@WfNode("md_oai_export")
public class MdExportOaiJobNode extends AbstractJobNode {
public class MdExportOaiJobNode extends ProcessNode {
@WfInputParam
private Datasource ds;

View File

@ -16,7 +16,7 @@ import eu.dnetlib.wfs.annotations.WfInputParam;
import eu.dnetlib.wfs.annotations.WfNode;
@WfNode("md_index")
public class MdIndexJobNode extends AbstractJobNode {
public class MdIndexJobNode extends ProcessNode {
@WfInputParam
private Datasource ds;

View File

@ -28,7 +28,7 @@ import eu.dnetlib.wfs.utils.XpathFilterFactory;
import jakarta.transaction.Transactional;
@WfNode("md_transform_xslt")
public class MdTransformJobNode extends AbstractJobNode {
public class MdTransformJobNode extends ProcessNode {
@WfInputParam
private Datasource ds;

View File

@ -1,30 +0,0 @@
package eu.dnetlib.wfs.nodes;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import eu.dnetlib.wfs.procs.Token;
import eu.dnetlib.wfs.utils.NodeCallback;
public abstract class AbstractJobNode extends ProcessNode {
private static final Log log = LogFactory.getLog(AbstractJobNode.class);
@Override
public final void execute(final Token token, final NodeCallback callback) {
try {
log.debug("START NODE: " + getBeanName());
token.setProgressMessage(getNodeName());
execute();
callback.onSuccess(token);
log.debug("END NODE (SUCCESS): " + getBeanName());
} catch (final Throwable e) {
log.error("got exception while executing workflow node", e);
log.debug("END NODE (FAILED): " + getBeanName());
callback.onFail(token, e);
}
}
protected abstract void execute() throws Exception;
}

View File

@ -1,6 +1,6 @@
package eu.dnetlib.wfs.nodes;
public final class DefaultJobNode extends AbstractJobNode {
public final class DefaultJobNode extends ProcessNode {
public DefaultJobNode(final String name) {
setNodeName(name);

View File

@ -73,7 +73,21 @@ public abstract class ProcessNode implements BeanNameAware {
}
}
protected abstract void execute(final Token token, NodeCallback callback);
private final void execute(final Token token, final NodeCallback callback) {
try {
log.debug("START NODE: " + getBeanName());
token.setProgressMessage(getNodeName());
execute();
callback.onSuccess(token);
log.debug("END NODE (SUCCESS): " + getBeanName());
} catch (final Throwable e) {
log.error("got exception while executing workflow node", e);
log.debug("END NODE (FAILED): " + getBeanName());
callback.onFail(token, e);
}
}
protected abstract void execute() throws Exception;
public final boolean isAsync() {
// return this.getClass().getAnnotation(WfNode.class).async;

View File

@ -1,6 +1,6 @@
package eu.dnetlib.wfs.nodes;
public class SuccessNode extends AbstractJobNode {
public class SuccessNode extends ProcessNode {
public SuccessNode() {
setNodeName("success");

View File

@ -5,11 +5,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import eu.dnetlib.errors.WorkflowManagerException;
import eu.dnetlib.wfs.annotations.WfNode;
import eu.dnetlib.wfs.nodes.AbstractJobNode;
import eu.dnetlib.wfs.nodes.ProcessNode;
import eu.dnetlib.wfs.repository.WfConfigurationRepository;
@WfNode("deleteWfConfiguration")
public class DeleteWfConfigurationNode extends AbstractJobNode {
public class DeleteWfConfigurationNode extends ProcessNode {
@Autowired
private WfConfigurationRepository wfConfigurationRepository;

View File

@ -21,12 +21,12 @@ import eu.dnetlib.domain.wfs.templates.WfTemplate;
import eu.dnetlib.wfs.annotations.WfInputParam;
import eu.dnetlib.wfs.annotations.WfNode;
import eu.dnetlib.wfs.annotations.WfOutputParam;
import eu.dnetlib.wfs.nodes.AbstractJobNode;
import eu.dnetlib.wfs.nodes.ProcessNode;
import eu.dnetlib.wfs.repository.WfConfigurationRepository;
import eu.dnetlib.wfs.utils.WfConfigurationUtils;
@WfNode("registerWfConfiguration")
public class RegisterWfConfigurationNode extends AbstractJobNode {
public class RegisterWfConfigurationNode extends ProcessNode {
private static final int DEFAULT_AGGR_PRIORITY = 75;

View File

@ -7,10 +7,10 @@ import eu.dnetlib.common.clients.DsmClient;
import eu.dnetlib.domain.dsm.Api;
import eu.dnetlib.wfs.annotations.WfInputParam;
import eu.dnetlib.wfs.annotations.WfNode;
import eu.dnetlib.wfs.nodes.AbstractJobNode;
import eu.dnetlib.wfs.nodes.ProcessNode;
@WfNode("clearApiExtraFields")
public class ClearApiExtraFieldsNode extends AbstractJobNode {
public class ClearApiExtraFieldsNode extends ProcessNode {
@WfInputParam
private String infoType; // COLLECT, TRANSFORM, DOWNLOAD

View File

@ -8,10 +8,10 @@ import eu.dnetlib.domain.dsm.Api;
import eu.dnetlib.domain.dsm.Datasource;
import eu.dnetlib.wfs.annotations.WfNode;
import eu.dnetlib.wfs.annotations.WfOutputParam;
import eu.dnetlib.wfs.nodes.AbstractJobNode;
import eu.dnetlib.wfs.nodes.ProcessNode;
@WfNode("loadDatasourceInfo")
public class LoadDatasourceInfoNode extends AbstractJobNode {
public class LoadDatasourceInfoNode extends ProcessNode {
@WfOutputParam
private Datasource ds;

View File

@ -8,10 +8,10 @@ import eu.dnetlib.domain.dsm.Api;
import eu.dnetlib.domain.dsm.Datasource;
import eu.dnetlib.wfs.annotations.WfInputParam;
import eu.dnetlib.wfs.annotations.WfNode;
import eu.dnetlib.wfs.nodes.AbstractJobNode;
import eu.dnetlib.wfs.nodes.ProcessNode;
@WfNode("updateApiStatus")
public class UpdateApiStatusNode extends AbstractJobNode {
public class UpdateApiStatusNode extends ProcessNode {
@WfInputParam
private Datasource ds;

View File

@ -9,10 +9,10 @@ import eu.dnetlib.domain.dsm.Api;
import eu.dnetlib.domain.dsm.Datasource;
import eu.dnetlib.wfs.annotations.WfInputParam;
import eu.dnetlib.wfs.annotations.WfNode;
import eu.dnetlib.wfs.nodes.AbstractJobNode;
import eu.dnetlib.wfs.nodes.ProcessNode;
@WfNode("verifyDatasource")
public class VerifyDatasourceNode extends AbstractJobNode {
public class VerifyDatasourceNode extends ProcessNode {
@WfInputParam
private String expectedEoscDsTypes;

View File

@ -6,10 +6,10 @@ import eu.dnetlib.common.index.solr.SolrService;
import eu.dnetlib.domain.dsm.Api;
import eu.dnetlib.wfs.annotations.WfInputParam;
import eu.dnetlib.wfs.annotations.WfNode;
import eu.dnetlib.wfs.nodes.AbstractJobNode;
import eu.dnetlib.wfs.nodes.ProcessNode;
@WfNode("deleteIndexRecords")
public class DeleteIndexRecordsNode extends AbstractJobNode {
public class DeleteIndexRecordsNode extends ProcessNode {
@WfInputParam
private String indexConfigurationId;

View File

@ -11,10 +11,10 @@ import eu.dnetlib.domain.mdstore.MDStoreWithInfo;
import eu.dnetlib.wfs.annotations.WfInputParam;
import eu.dnetlib.wfs.annotations.WfNode;
import eu.dnetlib.wfs.annotations.WfOutputParam;
import eu.dnetlib.wfs.nodes.AbstractJobNode;
import eu.dnetlib.wfs.nodes.ProcessNode;
@WfNode("createMdStore")
public class CreateMdStoreNode extends AbstractJobNode {
public class CreateMdStoreNode extends ProcessNode {
@WfInputParam
private String format;

View File

@ -6,10 +6,10 @@ import eu.dnetlib.common.clients.MDStoreManagerClient;
import eu.dnetlib.common.clients.DnetServiceClientFactory;
import eu.dnetlib.wfs.annotations.WfInputParam;
import eu.dnetlib.wfs.annotations.WfNode;
import eu.dnetlib.wfs.nodes.AbstractJobNode;
import eu.dnetlib.wfs.nodes.ProcessNode;
@WfNode("deleteMdStore")
public class DeleteMdStoreNode extends AbstractJobNode {
public class DeleteMdStoreNode extends ProcessNode {
@WfInputParam
private String mdId;

View File

@ -3,10 +3,10 @@ package eu.dnetlib.wfs.nodes.test;
import eu.dnetlib.wfs.annotations.WfInputParam;
import eu.dnetlib.wfs.annotations.WfNode;
import eu.dnetlib.wfs.annotations.WfOutputParam;
import eu.dnetlib.wfs.nodes.AbstractJobNode;
import eu.dnetlib.wfs.nodes.ProcessNode;
@WfNode("test01")
public class Test01Node extends AbstractJobNode {
public class Test01Node extends ProcessNode {
@WfInputParam
private String message;