0

Apache Daffodil 新...

尝试使用 Apache Daffodil 消息解析应用程序来节省启动时间。

只是想知道是否有可能(或可行)预编译一个 Apache Daffodil“DataProcessor”对象(当然,使用指定的模式) - 然后将其用作使用 Daffodil 解析的单独应用程序的构建依赖项。
---即,与在运行时等待模式编译相比

4

1 回答 1

0

DataProcessorDaffodil API 确实提供了通过DataProcessor#save和方法序列化和反序列化 a的Compiler#reload方法。

例如,要将 DataProcessor 保存到文件中:

DataProcessor dp = ...;

FileChannel fc = FileChannel.open(filePath);
dp.save(fc);

将该文件重新加载到数据处理器:

FileChannel fc = FileChannel.open(filePath);
DataProcessor dp = Compiler.reload(fc);

该示例用于使用文件,但 API 支持保存到 anyWritableByteChannel并从 any 重新加载ReadableByteChannel

我知道没有任何现有的 Maven/Gradle 插件可以自动执行此操作,但是可以将编译/保存放在资源生成器中,然后在运行时调用 reload 以加载资源。

于 2019-08-04T18:11:28.947 回答