EmbulkEmbedでModelManager+Optionalのエラー
Embulk0.7.3のEmbulkEmbedで、ConfigSourceを作る際に
BootstrapのgetSystemConfigLoaderから取得したローダーで作ると駄目で、
EmbulkEmbedのnewConfigLoaderを使う必要がある。
Sadayuki Furuhashi
@frsyuki
@hishidama ne.jp/asahi/hishidam… を見つけました。ModelManager + Optionalでエラーが発生していますね。おそらくですが、
2015-08-30 13:01:39
Sadayuki Furuhashi
@frsyuki
@hishidama newSystemConfigLoaderから作ったConfigSourceをEmbulkEmbed.runに渡してませんか? systemConfigLoaderで作られるConfigSourceは、bootstrap用の
2015-08-30 13:02:32
Sadayuki Furuhashi
@frsyuki
@hishidama 最小限のModelManagerしか持っていないので、本当にsystem configをロードするためにしか使えません。具体的に言うとcom.fasterxml.jackson.datatype.guava.GuavaModuleがinjectされてません。
2015-08-30 13:03:17
Sadayuki Furuhashi
@frsyuki
@hishidama なのでOptionalが読めないのだと思われます。回避するには、lib/embulk/runner.rがやっているように、まずsystem config loaderを使ってEmbulkEmbedをブートストラップした後で、さらに
2015-08-30 13:04:03
Sadayuki Furuhashi
@frsyuki
@hishidama EmbulkEmbed.newConfigLoaderを呼び、それを使って新しいConfigSoruceを作って、それをrunに渡す必要があります。
2015-08-30 13:04:34
Sadayuki Furuhashi
@frsyuki
@hishidama おそらく型が同じなのが良くないので、ブートストラップ用のsystem configは、将来的にConfigSourceクラスではなくDataSourceクラスになる予定です。
2015-08-30 13:05:10
ひしだま
@hishidama
@frsyuki 出来ました!ありがとうございます! てっきりBootstrapのConfigLoaderを使い回すのだと思ってました^^;
2015-08-30 13:32:46