WIP: User doc on packaging and plugins. Drafts#108
Draft
mbeckerle wants to merge 1 commit intoapache:mainfrom
Draft
WIP: User doc on packaging and plugins. Drafts#108mbeckerle wants to merge 1 commit intoapache:mainfrom
mbeckerle wants to merge 1 commit intoapache:mainfrom
Conversation
mbeckerle
commented
Mar 1, 2023
| // /////////////////////////////////////////////////////////////////////////// | ||
| // | ||
| // This file is written in AsciiDoc. | ||
| // |
| :page-layout: page | ||
| :url-asciidoctor: http://asciidoctor.org | ||
| :keywords: plugins layering UDF charset | ||
| // /////////////////////////////////////////////////////////////////////////// |
| // | ||
| // ////////////////////////////////////////////////////////////////////////// | ||
|
|
||
| = DFDL Language Extensions in Daffodil |
| - Layering Transformer (e.g., unzip/zip, verify/recompute checksums) | ||
| - User Defined Function (UDF) (e.g., convert mean-sea-level elevation to height-above-ellipsoid) | ||
|
|
||
| There is one additional kind of plugin that will be supported by Daffodil 3.4.0 |
|
|
||
| Configuring an application must put these jar files on the CLASSPATH so that the executing instance of Daffodil for a specific configured data processing flow finds them on the class path for the data format(s) that flow is processing. | ||
|
|
||
| For greater assurance/trust, the plugin jars could be digitally signed by their creators, and applications could verify these signatures (using public keys) as a startup condition. |
| === Advance Summary | ||
|
|
||
| - The best way to use DFDL schemas is accessing them from Jar files | ||
| - Include pre-compiled binary DFDL schema files also in the same Jar file. |
|
|
||
| The organization of the files into these directory structures is not arbitrary. | ||
| It can be needed to avoid file name clashes and serves the same role as the Java package-name directory structure does for Java programs. | ||
| The directory hierarchy defines a Java package-like namespace structure for DFDL schemas. |
| // | ||
| // ////////////////////////////////////////////////////////////////////////// | ||
|
|
||
| = Packaging DFDL Schemas for use in Daffodil Applications |
|
|
||
| = DFDL Language Extensions in Daffodil | ||
|
|
||
| Daffodil contains numerous extensions to the DFDL v1.0 language. |
| Different DFDL schemas for different kinds of data will need their own such plugins. | ||
| Hence the plugins, like the DFDL schema files themselves, are used in applications as part of a specific data-processing flow. | ||
|
|
||
| Keeping in the spirit of DFDL in describing a format declaratively, plugins need to be very small pieces of code (ex: a character set definition should be 10 lines of code.) |
Contributor
|
If I were to review this PR (I won't since you didn't ask for a review at this time), I would want the long lines in the file to be wrapped to at most 90 columns. |
First draft of pages about packaging dfdl schemas, and about plugins. All applications using Daffodil, at least via Runtime1 should, ideally, be taking advantage of packaging DFDL schemas in Jar files, using 'sbt publish' and managed-dependencies for inter-schema dependencies, etc.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
(This PR replaces the PR #90 which was not on a named branch.)
At the moment no further review is necessary.
First draft of pages about packaging dfdl schemas, and about plugins.
All applications using Daffodil, at least via Runtime1 should, ideally, be taking advantage of packaging DFDL schemas in Jar files, using 'sbt publish' and managed-dependencies for inter-schema dependencies, etc.