You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by ha...@apache.org on 2020/11/18 17:31:14 UTC
[incubator-hop] branch master updated: HOP-2201 : Workflow executer
Transform does not show logging (#391)
This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-hop.git
The following commit(s) were added to refs/heads/master by this push:
new b8a01e1 HOP-2201 : Workflow executer Transform does not show logging (#391)
b8a01e1 is described below
commit b8a01e149f96987e31b9732717663a9cb1a581ac
Author: Matt Casters <ma...@gmail.com>
AuthorDate: Wed Nov 18 18:26:52 2020 +0100
HOP-2201 : Workflow executer Transform does not show logging (#391)
---
.../transforms/workflowexecutor/WorkflowExecutor.java | 2 +-
engine/src/main/java/org/apache/hop/run/HopRun.java | 2 +-
engine/src/main/java/org/apache/hop/workflow/Workflow.java | 7 +++++++
.../apache/hop/workflow/actions/workflow/ActionWorkflow.java | 2 +-
.../org/apache/hop/workflow/engine/WorkflowEngineFactory.java | 11 ++++++++---
engine/src/main/java/org/apache/hop/www/AddExportServlet.java | 2 +-
.../src/main/java/org/apache/hop/www/AddWorkflowServlet.java | 2 +-
.../src/main/java/org/apache/hop/www/BaseWorkflowServlet.java | 2 +-
.../main/java/org/apache/hop/www/StartWorkflowServlet.java | 2 +-
.../main/java/org/apache/hop/www/jaxrs/WorkflowResource.java | 4 ++--
.../hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java | 2 +-
11 files changed, 25 insertions(+), 13 deletions(-)
diff --git a/engine/src/main/java/org/apache/hop/pipeline/transforms/workflowexecutor/WorkflowExecutor.java b/engine/src/main/java/org/apache/hop/pipeline/transforms/workflowexecutor/WorkflowExecutor.java
index 86a1acf..4108813 100644
--- a/engine/src/main/java/org/apache/hop/pipeline/transforms/workflowexecutor/WorkflowExecutor.java
+++ b/engine/src/main/java/org/apache/hop/pipeline/transforms/workflowexecutor/WorkflowExecutor.java
@@ -310,7 +310,7 @@ public class WorkflowExecutor extends BaseTransform<WorkflowExecutorMeta, Workfl
@VisibleForTesting
IWorkflowEngine<WorkflowMeta> createWorkflow( WorkflowMeta workflowMeta, ILoggingObject parentLogging ) throws HopException {
- return WorkflowEngineFactory.createWorkflowEngine( environmentSubstitute(meta.getRunConfigurationName()), metadataProvider, workflowMeta );
+ return WorkflowEngineFactory.createWorkflowEngine( environmentSubstitute(meta.getRunConfigurationName()), metadataProvider, workflowMeta, parentLogging );
}
@VisibleForTesting
diff --git a/engine/src/main/java/org/apache/hop/run/HopRun.java b/engine/src/main/java/org/apache/hop/run/HopRun.java
index c6c1050..7107ecb 100644
--- a/engine/src/main/java/org/apache/hop/run/HopRun.java
+++ b/engine/src/main/java/org/apache/hop/run/HopRun.java
@@ -268,7 +268,7 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
private void runWorkflow( CommandLine cmd, ILogChannel log, WorkflowExecutionConfiguration configuration, WorkflowMeta workflowMeta ) {
try {
String runConfigurationName = workflowMeta.environmentSubstitute(configuration.getRunConfiguration());
- IWorkflowEngine<WorkflowMeta> workflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflowMeta );
+ IWorkflowEngine<WorkflowMeta> workflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflowMeta, null );
workflow.initializeVariablesFrom( null );
workflow.getWorkflowMeta().setInternalHopVariables( workflow );
workflow.injectVariables( configuration.getVariablesMap() );
diff --git a/engine/src/main/java/org/apache/hop/workflow/Workflow.java b/engine/src/main/java/org/apache/hop/workflow/Workflow.java
index b6c3e10..f894a30 100644
--- a/engine/src/main/java/org/apache/hop/workflow/Workflow.java
+++ b/engine/src/main/java/org/apache/hop/workflow/Workflow.java
@@ -1320,6 +1320,13 @@ public abstract class Workflow extends Variables implements IVariables, INamedPa
}
/**
+ * @param parentLoggingObject The parentLoggingObject to set
+ */
+ public void setParentLoggingObject( ILoggingObject parentLoggingObject ) {
+ this.parentLoggingObject = parentLoggingObject;
+ }
+
+ /**
* Gets the registration date. For workflow, this always returns null
*
* @return null
diff --git a/engine/src/main/java/org/apache/hop/workflow/actions/workflow/ActionWorkflow.java b/engine/src/main/java/org/apache/hop/workflow/actions/workflow/ActionWorkflow.java
index e484caf..9db039c 100644
--- a/engine/src/main/java/org/apache/hop/workflow/actions/workflow/ActionWorkflow.java
+++ b/engine/src/main/java/org/apache/hop/workflow/actions/workflow/ActionWorkflow.java
@@ -522,7 +522,7 @@ public class ActionWorkflow extends ActionBase implements Cloneable, IAction {
// Create a new workflow
//
- workflow = WorkflowEngineFactory.createWorkflowEngine( environmentSubstitute( runConfiguration ), metadataProvider, workflowMeta );
+ workflow = WorkflowEngineFactory.createWorkflowEngine( environmentSubstitute( runConfiguration ), metadataProvider, workflowMeta, this );
workflow.setParentWorkflow( parentWorkflow );
workflow.setLogLevel( jobLogLevel );
workflow.shareVariablesWith( this );
diff --git a/engine/src/main/java/org/apache/hop/workflow/engine/WorkflowEngineFactory.java b/engine/src/main/java/org/apache/hop/workflow/engine/WorkflowEngineFactory.java
index bd06e7e..badd0b5 100644
--- a/engine/src/main/java/org/apache/hop/workflow/engine/WorkflowEngineFactory.java
+++ b/engine/src/main/java/org/apache/hop/workflow/engine/WorkflowEngineFactory.java
@@ -24,6 +24,7 @@ package org.apache.hop.workflow.engine;
import org.apache.commons.lang.StringUtils;
import org.apache.hop.core.exception.HopException;
+import org.apache.hop.core.logging.ILoggingObject;
import org.apache.hop.core.plugins.IPlugin;
import org.apache.hop.core.plugins.PluginRegistry;
import org.apache.hop.metadata.api.IHopMetadataProvider;
@@ -34,10 +35,11 @@ import org.apache.hop.pipeline.engine.IPipelineEngine;
import org.apache.hop.workflow.WorkflowMeta;
import org.apache.hop.workflow.config.IWorkflowEngineRunConfiguration;
import org.apache.hop.workflow.config.WorkflowRunConfiguration;
+import org.apache.hop.workflow.engines.local.LocalWorkflowEngine;
public class WorkflowEngineFactory {
- public static final <T extends WorkflowMeta> IWorkflowEngine<T> createWorkflowEngine( String runConfigurationName, IHopMetadataProvider metadataProvider, T workflowMeta ) throws HopException {
+ public static final <T extends WorkflowMeta> IWorkflowEngine<T> createWorkflowEngine( String runConfigurationName, IHopMetadataProvider metadataProvider, T workflowMeta, ILoggingObject parentLogging ) throws HopException {
if ( StringUtils.isEmpty(runConfigurationName)) {
throw new HopException( "You need to specify a workflow run configuration to execute this workflow" );
}
@@ -50,7 +52,7 @@ public class WorkflowEngineFactory {
if (runConfiguration==null) {
throw new HopException( "Workflow run configuration '"+runConfigurationName+"' could not be found" );
}
- IWorkflowEngine<T> workflowEngine = createWorkflowEngine( runConfiguration, workflowMeta );
+ IWorkflowEngine<T> workflowEngine = createWorkflowEngine( runConfiguration, workflowMeta, parentLogging );
// Copy the variables from the metadata
//
@@ -64,7 +66,7 @@ public class WorkflowEngineFactory {
return workflowEngine;
}
- private static final <T extends WorkflowMeta> IWorkflowEngine<T> createWorkflowEngine( WorkflowRunConfiguration workflowRunConfiguration, T workflowMeta ) throws HopException {
+ private static final <T extends WorkflowMeta> IWorkflowEngine<T> createWorkflowEngine( WorkflowRunConfiguration workflowRunConfiguration, T workflowMeta, ILoggingObject parentLogging ) throws HopException {
IWorkflowEngineRunConfiguration engineRunConfiguration = workflowRunConfiguration.getEngineRunConfiguration();
if (engineRunConfiguration==null) {
throw new HopException( "There is no pipeline execution engine specified in run configuration '"+workflowRunConfiguration.getName()+"'" );
@@ -82,6 +84,9 @@ public class WorkflowEngineFactory {
IWorkflowEngine<T> workflowEngine = pluginRegistry.loadClass( plugin, IWorkflowEngine.class );
workflowEngine.setWorkflowRunConfiguration( workflowRunConfiguration );
+ if (workflowEngine instanceof LocalWorkflowEngine ) {
+ ((LocalWorkflowEngine)workflowEngine).setParentLoggingObject( parentLogging );
+ }
workflowEngine.setWorkflowMeta( workflowMeta );
return workflowEngine;
diff --git a/engine/src/main/java/org/apache/hop/www/AddExportServlet.java b/engine/src/main/java/org/apache/hop/www/AddExportServlet.java
index 92200f7..66503fc 100644
--- a/engine/src/main/java/org/apache/hop/www/AddExportServlet.java
+++ b/engine/src/main/java/org/apache/hop/www/AddExportServlet.java
@@ -161,7 +161,7 @@ public class AddExportServlet extends BaseHttpServlet implements IHopServerPlugi
//
workflowMeta.setMetadataProvider( metadataProvider );
- final IWorkflowEngine<WorkflowMeta> workflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflowMeta );
+ final IWorkflowEngine<WorkflowMeta> workflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflowMeta, servletLoggingObject );
// store it all in the map...
//
diff --git a/engine/src/main/java/org/apache/hop/www/AddWorkflowServlet.java b/engine/src/main/java/org/apache/hop/www/AddWorkflowServlet.java
index e7cd869..9f71288 100644
--- a/engine/src/main/java/org/apache/hop/www/AddWorkflowServlet.java
+++ b/engine/src/main/java/org/apache/hop/www/AddWorkflowServlet.java
@@ -113,7 +113,7 @@ public class AddWorkflowServlet extends BaseHttpServlet implements IHopServerPlu
// Create the workflow and store in the list...
//
String runConfigurationName = workflowExecutionConfiguration.getRunConfiguration();
- final IWorkflowEngine<WorkflowMeta> workflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflowMeta );
+ final IWorkflowEngine<WorkflowMeta> workflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflowMeta, servletLoggingObject );
// Setting variables
//
diff --git a/engine/src/main/java/org/apache/hop/www/BaseWorkflowServlet.java b/engine/src/main/java/org/apache/hop/www/BaseWorkflowServlet.java
index ddd7a2b..54eeff1 100644
--- a/engine/src/main/java/org/apache/hop/www/BaseWorkflowServlet.java
+++ b/engine/src/main/java/org/apache/hop/www/BaseWorkflowServlet.java
@@ -70,7 +70,7 @@ public abstract class BaseWorkflowServlet extends BodyHttpServlet {
// Create the workflow and store in the list...
//
String runConfigurationName = workflowExecutionConfiguration.getRunConfiguration();
- final IWorkflowEngine<WorkflowMeta> workflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflowMeta );
+ final IWorkflowEngine<WorkflowMeta> workflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflowMeta, servletLoggingObject );
// Setting variables
workflow.initializeVariablesFrom( null );
diff --git a/engine/src/main/java/org/apache/hop/www/StartWorkflowServlet.java b/engine/src/main/java/org/apache/hop/www/StartWorkflowServlet.java
index 60333e7..b5465a5 100644
--- a/engine/src/main/java/org/apache/hop/www/StartWorkflowServlet.java
+++ b/engine/src/main/java/org/apache/hop/www/StartWorkflowServlet.java
@@ -128,7 +128,7 @@ public class StartWorkflowServlet extends BaseHttpServlet implements IHopServerP
servletLoggingObject.setContainerObjectId( serverObjectId );
String runConfigurationName = workflowConfiguration.getWorkflowExecutionConfiguration().getRunConfiguration();
- IWorkflowEngine<WorkflowMeta> newWorkflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflow.getWorkflowMeta() );
+ IWorkflowEngine<WorkflowMeta> newWorkflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflow.getWorkflowMeta(), servletLoggingObject );
newWorkflow.setLogLevel( workflow.getLogLevel() );
// Discard old log lines from the old workflow
diff --git a/engine/src/main/java/org/apache/hop/www/jaxrs/WorkflowResource.java b/engine/src/main/java/org/apache/hop/www/jaxrs/WorkflowResource.java
index d3e447b..31f50af 100644
--- a/engine/src/main/java/org/apache/hop/www/jaxrs/WorkflowResource.java
+++ b/engine/src/main/java/org/apache/hop/www/jaxrs/WorkflowResource.java
@@ -108,7 +108,7 @@ public class WorkflowResource {
servletLoggingObject.setContainerObjectId( serverObjectId );
String runConfigurationName = workflowConfiguration.getWorkflowExecutionConfiguration().getRunConfiguration();
try {
- IWorkflowEngine<WorkflowMeta> newWorkflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflow.getWorkflowMeta() );
+ IWorkflowEngine<WorkflowMeta> newWorkflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflow.getWorkflowMeta(), servletLoggingObject );
newWorkflow.setLogLevel( workflow.getLogLevel() );
// Discard old log lines from the old workflow
@@ -175,7 +175,7 @@ public class WorkflowResource {
// Create the workflow and store in the list...
//
String runConfigurationName = workflowConfiguration.getWorkflowExecutionConfiguration().getRunConfiguration();
- final IWorkflowEngine<WorkflowMeta> workflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflowMeta );
+ final IWorkflowEngine<WorkflowMeta> workflow = WorkflowEngineFactory.createWorkflowEngine( runConfigurationName, metadataProvider, workflowMeta, servletLoggingObject );
// Setting variables
//
diff --git a/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java b/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
index 125c92a..5ae2491 100644
--- a/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
+++ b/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
@@ -3209,7 +3209,7 @@ public class HopGuiWorkflowGraph extends HopGuiAbstractGraph
hopGuiLoggingObject.setContainerObjectId( hopGuiObjectId );
hopGuiLoggingObject.setLogLevel( executionConfiguration.getLogLevel() );
- workflow = WorkflowEngineFactory.createWorkflowEngine( executionConfiguration.getRunConfiguration(), hopGui.getMetadataProvider(), runWorkflowMeta );
+ workflow = WorkflowEngineFactory.createWorkflowEngine( executionConfiguration.getRunConfiguration(), hopGui.getMetadataProvider(), runWorkflowMeta, hopGuiLoggingObject );
workflow.setLogLevel( executionConfiguration.getLogLevel() );
workflow.shareVariablesWith( workflowMeta );