EmbulkEmbedでModelManager+Optionalのエラー

Embulk0.7.3のEmbulkEmbedで、ConfigSourceを作る際に BootstrapのgetSystemConfigLoaderから取得したローダーで作ると駄目で、 EmbulkEmbedのnewConfigLoaderを使う必要がある。
1
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