private Config getMergedConfig(FlowEdge flowEdge)
      throws ExecutionException, InterruptedException {
    Config srcNodeConfig = this.flowGraph.getNode(flowEdge.getSrc()).getRawConfig().atPath(SOURCE_PREFIX);
    Config destNodeConfig = this.flowGraph.getNode(flowEdge.getDest()).getRawConfig().atPath(DESTINATION_PREFIX);
    Config mergedConfig = flowConfig.withFallback(flowEdge.getConfig()).withFallback(srcNodeConfig).withFallback(destNodeConfig);
    return mergedConfig;
  }
private Config getMergedConfig ( FlowEdge flowEdge ) throws ExecutionException , InterruptedException { Config srcNodeConfig = this . flowGraph . getNode ( flowEdge . getSrc ( ) ) . getRawConfig ( ) . atPath ( SOURCE_PREFIX ) ; Config destNodeConfig = this . flowGraph . getNode ( flowEdge . getDest ( ) ) . getRawConfig ( ) . atPath ( DESTINATION_PREFIX ) ; Config mergedConfig = flowConfig . withFallback ( flowEdge . getConfig ( ) ) . withFallback ( srcNodeConfig ) . withFallback ( destNodeConfig ) ; return mergedConfig ; }
Build the merged config for each {@link FlowEdge}, which is a combination of (in the precedence described below):
<ul>
<p> the user provided flow config </p>
<p> edge specific properties/overrides </p>
<p> source node config </p>
<p> destination node config </p>
</ul>
Each {@link JobTemplate}'s config will eventually be resolved against this merged config.
@param flowEdge An instance of {@link FlowEdge}.
@return the merged config derived as described above.