外部からは、一覧とエクスポートのプロセスは、次のようになります。
ユーザーがコンポーネントを作成するコンポーネントタイプを選択します。選択したタイプのバッキングコンポーネントに exporterClassName が定義されている場合は、一覧とエクスポート用のユーザーインタフェースが起動します。
プロビジョニングソフトウェアで、BrowserInfo クラス内のブラウザ情報がすべて取得されます。この情報を取得するために、ソフトウェアで ComponentExporter インタフェースの getAvailableBrowsers メソッドが呼び出されます。
プロビジョニングソフトウェアで BrowserFactory の情報が BrowserInfo から取得され、BrowserFactory がインスタンス化されます。ここから、プロビジョニングソフトウェアで Browser オブジェクトが取得されます。
Browser オブジェクトから、ソフトウェアで Browser の getNode() メソッドを呼び出して root ノードが検索されます。
ユーザーがノードを選択し、続いてチェックインプロセスを行うと、プロビジョニングソフトウェアで ComponentExporter クラスの constructComponent メソッドが呼び出され、このメソッドによってリソースがエクスポートされ、チェックインされます。
プラグイン開発の観点から見たより詳細なプロセスは次のようになります。
コンポーネントタイプのバッキングコンポーネントが exporterClassName というコンポーネント変数を定義します。exporterClassName の値は、com.sun.n1.sps.plugin.export.ComponentExporter を実装するクラスです。
ComponentExporter クラスのメソッド getAvailableBrowsers が BrowserInfo オブジェクトの配列を返します。これらの BrowserInfo オブジェクトは、ブラウザに関する次の情報を持っています。
システムサービスの名前
上記のシステムサービス内の変数 name。この変数の値は BrowserFactory クラスです。
上記のシステムサービス内の変数 name。この変数の値は、ブラウザのクラスパスです。
クラスパスにシステムサービスを使用しない場合に、実際のクラスパス。
BrowserFactory クラスには、Browser インタフェースを実装するブラウザを取得するメソッドがあります。
Browser のメソッド getNode(...) がツリーのノードを検索します。引数が null だった場合、 getNode(...) は root ノードを返します。
ComponentExporter クラスには、コンポーネントを作成するメソッドが別にあります。このメソッドは、実際の一覧の終了後に使用されます。constructComponent メソッドには ComponentMonitor が渡され、これを使用して選択されたリソースがエクスポートされ、コンポーネントの一部としてマスターサーバーにチェックインされます。