EmbulkEmbedでModelManager+Optionalのエラー

Embulk0.7.3のEmbulkEmbedで、ConfigSourceを作る際に BootstrapのgetSystemConfigLoaderから取得したローダーで作ると駄目で、 EmbulkEmbedのnewConfigLoaderを使う必要がある。
システム管理 プログラミング 運用
665view 0コメント
1
Sadayuki Furuhashi @frsyuki
@hishidama ne.jp/asahi/hishidam… を見つけました。ModelManager + Optionalでエラーが発生していますね。おそらくですが、
Sadayuki Furuhashi @frsyuki
@hishidama newSystemConfigLoaderから作ったConfigSourceをEmbulkEmbed.runに渡してませんか? systemConfigLoaderで作られるConfigSourceは、bootstrap用の
Sadayuki Furuhashi @frsyuki
@hishidama 最小限のModelManagerしか持っていないので、本当にsystem configをロードするためにしか使えません。具体的に言うとcom.fasterxml.jackson.datatype.guava.GuavaModuleがinjectされてません。
Sadayuki Furuhashi @frsyuki
@hishidama なのでOptionalが読めないのだと思われます。回避するには、lib/embulk/runner.rがやっているように、まずsystem config loaderを使ってEmbulkEmbedをブートストラップした後で、さらに
Sadayuki Furuhashi @frsyuki
@hishidama EmbulkEmbed.newConfigLoaderを呼び、それを使って新しいConfigSoruceを作って、それをrunに渡す必要があります。
Sadayuki Furuhashi @frsyuki
@hishidama おそらく型が同じなのが良くないので、ブートストラップ用のsystem configは、将来的にConfigSourceクラスではなくDataSourceクラスになる予定です。
ひしだま @hishidama
@frsyuki 出来ました!ありがとうございます! てっきりBootstrapのConfigLoaderを使い回すのだと思ってました^^;
ログインして広告を非表示にする
ログインして広告を非表示にする