plugin.xmlのrequireのオプションは重要
結論からいうと、自分の作ったライブラリーをさらにimportする場合をexportはtrueにしておいた方がいい。
RCPでは動くが、Pluginで動かない場合があった。
そもそも、ろくに、EclipseのPluginの仕組みをしらずに作ってるのが
原因かもしれない。しかし、ぜんぶ覚えてから始めようとすると永遠にソフトが作れない気がするので、気にせずがんばろう。
でマニュアルを見てみると、requires タグには exportという属性があり
これを使うと、うまくいった。後からみると、swtやjfaceもexportがtrueになっていた。
他にもoptionalという属性があり、これを使うとそのpluginがなくても起動できるようだ。
<requires>
<import plugin="org.jpn.xucker.commons"/>
<import plugin="org.eclipse.ui"/>
<import plugin="org.eclipse.core.runtime"/>
<import plugin="org.eclipse.update.ui"/>
<import plugin="freetts_rcp" export="true"/>
<import plugin="mbrola_rcp" export="true" optional="true" />
</requires>
このoptional属性を使うと、最初は最低限の構成で、pluginがあれば、機能を増やすということができそうだ。この方法の場合、pluginがない時に、ClassNot FoundError が出るので、Exceptionではなく、Errorをcatchしないと落ちる。
もちろん、こういうのをextension pointで解決できたらいいのだが、勉強しないとよくわかりません。