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 );