Java Pluglet API
by Igor Kushnirskiy & Akhil Arora
Pluglet は JavaTM で書かれた プラグイン である。 Pluglet は Servlet の コンセプトに似ている。違いは、Servlet はコンテンツを供給するが、 Pluglet はそれを消費する。 Java Pluglet API は Mozilla の新しい C++ Plug-in API の、ほぼ 1:1 対応した移植である。
- なぜ Pluglets なのか?
-
プラットフォームに依存しない
- コンパクト
- Pluglets vs Applets
- どのように?
- デザインの目標
Pluglet は Blackwood プロジェクトの一部分である。プラグイン開発者にとって、 Java Pluglet による Mozilla の拡張を選択することは、 Pluglet に対して Java プラットフォームの持つアドバンテージが適用されることを意味する。
Java でプラグインを書くことは、 すなわち Java 仮想マシン(JVM) が動作する全てのプラットフォームの上で、そのプラグインが動作することである。
同一の機能について比較すれば、Java バイトコードは一般的に、コンパイルされた ネイティブコードよりも小さい。そのため、プラグインのダウンロードに必要な時間は 少なくなる。
よくある質問(FAQ)は、 Applet と Pluglet はどのように違うのか、というものだ。 これについては、 MozillaZine で議論された事がある。 基本的に、2つの違いがある。 Pluglet は、(訳注:ブラウザが)特定の Content Type に遭遇した時に起動されるが、Applet は <applet> タグに遭遇した時に起動される。 もう一つの違いは、Pluglet は Applet とは異なり、ディスク上にインストールされていて、 それぞれの起動毎にダウンロードされない。
Pluglets を有効にする鍵は Pluglet エンジンである。 Mozilla で Pluglet エンジンが起動する仕組みは、 XPCOM サービス と同様である。 Mozilla がある MIME タイプのためのハンドラを取得できなかった時、 Mozilla から Pluglet エンジンに問い合わせが行なわれる。Pluglet エンジンは、適切な Pluglet があればそれに作業を委任する。C++ と Java の間を行き来する際に、いくつかの JNI が関与する場合もある。
我々は、Java の機能を可能な限り反映させうる範囲で、 Plug-in 作成者が新たな API を学習しなくても良いように、Pluglet の API を C++ のそれとできるだけ似たものになるように設計した。別のアダプターを用いて、よりクリーンな、Java らしい Plug-in API をデザインする事は容易だが、我々はこの選択を優先するべきであると考えた。
必要なもの
このセクションはあなたが pluglet プロジェクトをビルドする前に 必要となるものについて書いている。- JDK1.2 以降
- 現在の Mozilla ビルド
コードの取得とビルド
コードの取得
-
あなたは最初に最も新しい Mozilla と Pluglet のコードを取得しなければならない。
これは http://www.mozilla.org/cvs.html で見つけられるだろう。
しかし、
cvs checkout SeaMonkeyAllではなくを使用する事。cvs checkout SeaMonkeyBlackwood
コードをビルドする
- http://www.mozilla.org/build/ で発見できるインストラクションを使用して Mozilla をビルドする。
- mozilla/java/plugins/README の中の手順に従う。
Pluglet サービス バイナリ
便利なblackwood xpi パッケージがあります。トラブルシューティング
-
問題
Pluglets が動作しない。pluglet エンジンが登録されていないようだ。解決法
$MOZILLA_FIVE_HOME/ の component.reg を削除して、ブラウザを再起動。
デモとスクリーンショット
私達は、4つの有効なデモを持っている。 これは スクリーンショット である。
| Pdf viewer |
Rtf viewer |
| Zip viewer |
Media player |