databuilderframework
databuilderframework copied to clipboard
DataFlowExecutor's databuilderFactory is not used
I am creating a SimpleDataFlowExecutor
with a custom DataBuilderFactory.
DataFlowExecutor executor = new SimpleDataFlowExecutor(myDataBuilderFactory);
However, when I run a dataflow with this executor the factory set in the constructor of DataFlowExecutor is not used.
The databuilderFactory of dataFlow takes precedence over the executor's builderFactory.
https://github.com/flipkart-incubator/databuilderframework/blob/master/src/main/java/com/flipkart/databuilderframework/engine/DataFlowExecutor.java#L57
public DataExecutionResponse run(DataFlow dataFlow, DataDelta dataDelta) throws DataBuilderFrameworkException, DataValidationException {
Preconditions.checkNotNull(dataFlow);
Preconditions.checkArgument(null != dataFlow.getDataBuilderFactory() || null != this.dataBuilderFactory);
return this.run(new DataBuilderContext(), new DataFlowInstance(), dataDelta, dataFlow, dataFlow.getDataBuilderFactory());
}
Suggestion: If dataflow's builderFactory is null, exectuor's factory can be used. So whenever i have to run the dataflow, i have to explicitly set the databuilderFactory and then call run.
dataFlow.setDataBuilderFactory(myDatabuilderFactory);
result = executor.run(dataFlow, data);
Also the default factory set in DataFlowBuilder is MixedDataBuilderFactory
. So can't really use this DataFlowBuilder to create a DataFlow.