Guiceで簡易的なプラグインシステムを構築するには

Java界隈にはOSGiといういかついダイナミックモジュールシステムがあるのですけども、これは解決しようとしている問題の量が非常に多いのでちょっとしたものを作るために使おうとすると非常に辛い。 そもそも、アプリケーションのブートストラップ部分から全部OSGiベースで作りこまないと良い感じに動いてくれません。 そこで、OSGiを前提としたアーキテクチャ設計が必要になるのですけども、ちょっと便利なツール作りたいだけなのに膨大な時間をかけてOSGiを勉強するかと言われると、しませんよね。 という訳で、Javaにおいて簡易的なプラグインシステムをGuiceで作ってみましょうという話です。 尚、Spring界隈で実現する方法については@makingさんのエントリをどうぞ。 DIコンテナで実現する簡易プラグイン機構 コードの場所 必要に応じてエントリ内にコードはありますが、実際に動作するものはGitHub上にあります。 https://github.com/taichi/plugin-system 制限事項 ここで作るプラグインシステムでは幾つかの明確な制限事項があります。 単一のプロセスで動作する 複数のプロセスでプラグインを自律的に共有することはできない »