[
https://issues.apache.org/jira/browse/DAFFODIL-2536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Olabusayo Kilo updated DAFFODIL-2536:
-------------------------------------
Priority: Minor (was: Major)
> Refactoring for Separable Runtimes/Back-ends
> --------------------------------------------
>
> Key: DAFFODIL-2536
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2536
> Project: Daffodil
> Issue Type: Improvement
> Components: Back End, Front End
> Affects Versions: 3.1.0
> Reporter: Mike Beckerle
> Priority: Minor
>
> (Copied from section _Refactoring for Separable Runtimes/Back-ends_ on the
> wiki page:
> [https://cwiki.apache.org/confluence/display/DAFFODIL/Roadmap+for+Upcoming+Releases])
> Daffodil's layering structure is not right. People want to treat the daffodil
> schema compiler as a service that starts with a DFDL schema and creates the
> optimized intermediate objects that a runtime backend then converts into
> runtime objects (Runtime1), generated code (codegen-c), or other formal
> artifacts. One should be able to do this from an outside application of
> Daffodil, not be adding things into Daffodil. Today you can't do this.
> Fixing this requires flipping the layering structure of Daffodil, so that
> daffodil-core, which contains the schema compiler, is split out from the API
> for generating an executable artifact. The schema compiler should be a
> library called from a higher layer.
> The Daffodil API may need to evolve substantially to accommodate this. The
> notion that the Daffodil Compiler creates a ProcessorFactory which creates a
> DataProcessor is fundamentally flawed with respect to the way people need to
> use parts of Daffodil, and to decoupling runtimes/back-ends from the rest of
> Daffodil.
> As an example, there are many ETL and EAI tools for transforming data. They
> each have their own ad-hoc format description language. A natural thing to do
> is to use Daffodil's compiler to convert from DFDL into the format
> description of one of these other ETL tools. This should be doable by reusing
> Daffodil's schema compiler to do all the checking associated with DFDL
> schemas, and to lower the representation to the optimized "Gram" objects that
> effectively represent the compiler output. A runtime, or converter tool,
> consumes this "Gram" object representation and outputs whatever artifact is
> needed.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)