Mike Beckerle created DAFFODIL-2567:
---------------------------------------
Summary: dynamic loading of java-based layering transformers
Key: DAFFODIL-2567
URL: https://issues.apache.org/jira/browse/DAFFODIL-2567
Project: Daffodil
Issue Type: New Feature
Components: Front End
Affects Versions: 3.2.0
Reporter: Mike Beckerle
(This ticket comes from splitting DAFFODIL-1927 into two tickets, this being
the latter half of the work.)
Recent changes to fix DAFFODIL-1927 allow extending Daffodil with new layer
transforms using layers that are defined (written in scala) separately and
outside of Daffodil.
(Or they can be easily incorporated into the daffodil-runtime1-layers module
which holds the layer definitions that are built-in to Daffodil)
An application that wishes to use one of these externally defined new layers
must explicitly call LayerCompilerRegistry.register(....) to register the new
layer.
This works fine for API-based applications using Daffodil, as they have many
convenient places to make this call.
It does not allow the Daffodil CLI to parse/unparse data using a schema that
requires such a loadable layer as their is nothing that will make the call to
register the new layer in the CLI.
This ticket is to
(a) define a Java API allowing one to define layers using Java code
(b) Use service loader techniques (as we already do for validators and UDFs) to
find an dynamically load layer definitions from jars on the classpath.
This enables the CLI to find and dynamically load layer definitions, and frees
API-based applications from having to explicitly invoke
LayerCompilerRegistry.register(...).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)