Sun N1 Service Provisioning System には、ユーザーが特定のリソースをコンポーネントに含めることができるようにする機能があります。一覧機能は、主に次の 2 つの機能から構成されます。
一覧 – ユーザーは、リモートエージェントマシンでフィルタを適用した任意のツリー表示のオブジェクト階層内を移動し、そのツリー内のオブジェクトを選択できます。
エクスポート – ユーザーは、選択したオブジェクトまたはオブジェクトの集合を、可能な場合は変更された形式でマスターサーバーにチェックインできます。
たとえば、ユーザーがファイルシステム内を移動し、ファイルを選択し、コンポーネントを使用してファイルをチェックインできるようにできます。
一覧とエクスポートの機能は、com.sun.n1.sps.plugin.browse と com.sun.n1.sps.plugin.export パッケージで提供されます。詳細は、「コンポーネント API」を参照してください。
外部からは、一覧とエクスポートのプロセスは、次のようになります。
ユーザーがコンポーネントを作成するコンポーネントタイプを選択します。選択したタイプのバッキングコンポーネントに 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 が渡され、これを使用して選択されたリソースがエクスポートされ、コンポーネントの一部としてマスターサーバーにチェックインされます。
階層ツリー機能全体を実装するクラスは BrowserNode です。この機能は主に次の 4 つの分野に分かれます。
ノードのすべての子を表示
ノードの親を表示
ノードがリーフノードかどうかを指定
ノードに関連するその他の説明やプロパティを表示
プラグイン用のブラウザの実装に使用するクラスやメソッドについては、「一覧機能」を参照してください。
ユーザーがファイルを一覧したあと、マスターサーバーにエクスポートできるようにするクラスは ComponentExporter です。プラグイン用のエクスポート機能の実装に使用するクラスやメソッドについては、「エクスポート機能」を参照してください。