Java ベースのコンポーネント API によって、プラグインにエクスポート機能と一覧機能を提供できます。ユーザーは、Sun N1 Service Provisioning System のブラウザインタフェースでディレクトリ構造を表示し、ファイルをエクスポートできます。
このパッケージには、コンポーネントデータベースを操作するためのインタフェースが 2 つあります。
このパッケージには、プラグイン関連の一般機能をサポートする 1 つのインタフェースと 3 つのクラスが含まれます。
このパッケージには、一覧機能を指定する 5 つのインタフェースと 4 つのクラスが含まれます。
Browser – このインタフェースは、一覧をサポートするリソースハンドラがエクスポートする必要がある一連の機能を定義します。
BrowserDisplay – このインタフェースは、表示をより有益かつ正確にするために階層マネージャの「UI Browsing」部分で使用されます。
BrowserFactory – このインタフェースは、ローダーが適切なブラウザの実際のインスタンスを取得するために使用するインタフェースです。
BrowserContext – このクラスは、クライアントが一覧セッションの初期パラメータを設定するためのコンテナを提供します。
BrowserInfo – このクラスは、ユーザーインタフェースでの表示とシステム内からの実際のインスタンスの取得に適切なブラウザを示します。
BrowserNodeBase – このクラスは、BrowserNode インタフェースのデフォルトの実装を提供します。
一覧機能の詳細と例については、「一覧機能」を参照してください。
このパッケージには、コンポーネントの定義と作成機能を指定するための 7 つのインタフェースと 1 つの例外クラスが含まれます。
ComponentExporter – 一覧プロセスからコンポーネントを作成するには、すべてのプラグインでこの基本インタフェースを実装する必要があります。
ComponentMonitor – システムによって作成され、特定のコンポーネントのコンポーネント作成プロセスを管理するモニターです。
ComponentToken – 包含コンポーネントを CompositeComponentMonitor に追加するためにコンポーネントを表すトークンです。
SystemData – 現在のエクスポートと一覧の処理に関連するさまざまな持続システムオブジェクトによって定義される変数へのアクセスを提供します。
ComponentExportException – コンポーネントのエクスポートに関連するエラーに使用する強く型付けされた例外です。
エクスポート機能の詳細と例については、「エクスポート機能」を参照してください。
このパッケージには、リソースを管理するための 7 つのインタフェースと 1 つの例外が含まれます。
このパッケージには、ユーティリティーを管理するための 1 つのインタフェースと 3 つの追加パッケージが含まれます。
com.sun.n1.util.enum – このパッケージには、2 つのインタフェースと 1 つの例外クラスが含まれます。
com.sun.n1.util.message – このパッケージには、2 つのインタフェースが含まれます。
com.sun.n1.util.vars – このパッケージには、3 つのインタフェースと 3 つのクラスが含まれます。
com.sun.n1.sps.plugin.browse パッケージには、一覧機能を指定する 5 つのインタフェースと 4 つのクラスが含まれます。
Browser – 一覧機能をサポートするには、リソースハンドラでこの基本インタフェースを使用する必要があります。
BrowserDisplay – このインタフェースは、表示をより有益かつ正確にするために階層マネージャの「Browsing」部分で使用されます。
BrowserFactory – このインタフェースは、ローダーが適切なブラウザの実際のインスタンスを取得するために使用するインタフェースです。
BrowserFilter – このインタフェースは、特定の条件に従ってノードにフィルタを適用する方法を示します。
BrowserNode – このインタフェースは、一覧可能な階層ノードの機能を定義します。
BrowserContext – このクラスは、クライアントが一覧セッションの初期パラメータを設定するためのコンテナを提供します。
BrowserInfo – このクラスは、ユーザーインタフェースでの表示とシステム内からの実際のインスタンスの取得に適切なブラウザを示します。
BrowserNodeBase – このクラスは、BrowserNode インタフェースのデフォルトの実装を提供します。
BrowserException – このクラスは、一覧セッションからスローする型付けされた例外を指定します。
ブラウザ実装には、次の主な API セグメントが含まれます。
このブラウザがサポートするフィルタを返します。BrowserFilter インタフェースを使用して、特定の条件に基づいた BrowserNodes を選別します。たとえば、*.tmp ファイルだけを表示するフィルタを適用できます。
このブラウザで使用する表示プロパティオブジェクトを取得します。
階層内でこのブラウザが表すノードを返します。
一覧時に使用するフィルタを指定します。
BrowserNode クラスは、階層ツリー機能全体を実装します。この機能は次の 4 つの分野に分かれています。
ノードのすべての子を表示
ノードの親を表示
ノードがリーフノードかどうかを指定
ノードに関連するその他の説明やプロパティを表示
BrowserFactory インタフェースは、HierarchyBrowserLoader が適切な HierarchyBrowser の実際のインスタンスを取得するためのインタフェースです。
BrowserFactory インタフェースを実装するクラスを定義するには、次の例のような API 呼び出しを使用します。
Browser getBrowser(BrowserContext bContext,AgentContext aContext)
各オプションの意味は次のとおりです。
bContext は、このブラウザを指定したコンポーネントエクスポート機能から取得するコンテキストです。
aContext は、ネイティブライブラリをロードする必要がある場合にエージェントに指定するコンテキストです。
BrowserFactory の実装は、システムが指定する BrowserContext オブジェクトと AgentContext オブジェクトをパラメータとして getBrowser メソッドを定義します。
システムサービス内で、browserClassPathVar 変数にブラウザファクトリの完全指定のクラス名を宣言します。次のコードフラグメントでは、システムサービスに 2 つのブラウザファクトリを定義しています。
<var access="PRIVATE" name="EJBFileSystemBrowser" default="com.raplix.rolloutexpress.plugins.weblogic.hierarchies.ejb.EJBFileBrowserFactory" /> <var access="PRIVATE" name="EJBDomainBrowser" default="com.raplix.rolloutexpress.plugins.weblogic.hierarchies.ejb.EJBDomainBrowserFactory" />
次の例では、名前が *.tmp のファイルだけをフィルタします。
public class TmpFilter implements BrowserFilter, ExampleFilter { public String getName() { return "tmpFilter"; } public String getDescription() { return "show only *.tmp files"; } public boolean filter(ExampleBrowserNode node) { return node.getLocalName().endsWith(".tmp"); } }
com.sun.n1.sps.plugin.export パッケージには、コンポーネントの定義と作成機能を指定するための 7 つのインタフェースと 1 つの例外クラスが含まれます。
ComponentExporter – 一覧プロセスからコンポーネントを作成するには、すべてのプラグインでこの基本インタフェースを実装する必要があります。
ComponentMonitor – システムによって作成され、特定のコンポーネントのコンポーネント作成プロセスを管理するモニターです。
ComponentToken – 包含コンポーネントを CompositeComponentMonitor に追加するためにコンポーネントを表すトークンです。
CompositeComponentMonitor – ほかのコンポーネントを含むコンポーネントのモニターです。
ResourceProcessor – リソースのイントロスペクションを可能にします。
SimpleComponentMonitor – リソースを含むコンポーネントのモニターです。
SystemData – 現在のエクスポートと一覧の処理に関連するさまざまな持続システムオブジェクトによって定義される変数へのアクセスを提供します。
ComponentExportException – コンポーネントのエクスポートに関連するエラーに使用する強く型付けされた例外です。
エクスポート機能を有効にするには、次のような手順に従います。
コンポーネントタイプのバッキングコンポーネントで、exporterClass 変数で componentExporter の完全指定のクラス名を宣言します。
<varList> <var name="exporterClassName" default="com.sun.n1.sps.pluginimpl.sample.export.StaticCompExporter"/> </varList>
ComponentExporter インタフェースを実装するクラスを定義します。
ComponentExporter で ComponentMonitor 入力引数に対してさまざまなメソッドを呼び出し、コンポーネントを構築します。addComponentVar 、addSourceInfoParam、setComponentDescription、setComponentLabel などのメソッドを使用できます。
ComponentExporter では get ルーチンを呼び出して ComponentMonitor から情報を取得することもできます。get ルーチンには、getPluginComponentVars、getPluginHostVars、getActiveBrowser、getSourceInfoParam、getLocation などがあります。
ComponentExporter では exportResource を呼び出して、制御ブロック内で、コンポーネントをエクスポートするコンポーネントタイプに固有の機能を実行することもできます。
コンポーネントの作成後、ComponentExporter では setResource を呼び出して、コンポーネントに含める物理リソースを設定し、エクスポートプロセスを完了できます。
public class implements ComponentExporter { public ExampleExporter() { } public BrowserContext getBrowserContext() { return new BrowserContext(); } public BrowserInfo[] getAvailableBrowsers() { return new BrowserInfo[] { new BrowserInfo("example", //relevant comp type "Example Browser", //browser ui display name "example ss", //relevant ss null, //valid for all platforms null, //no host set restriction new PromptParamList()) //no checkin params }; } public String getBrowserClassPath(BrowserInfo browser) { return null; } public void constructComponent(ComponentMonitor mon) throws ComponentExportException { //It's the responsibility of the infrastructure to identify the type //of component and construct the component with the appropriate monitor SimpleComponentMonitor sMon = (SimpleComponentMonitor)mon; sMon.setComponentDescription("This is an example component"); sMon.setComponentLabel("What the hell is a label for?"); sMon.setResource(ResourceType.FILE, //our sample type is a file sMon.getLocation(), //get the location specified false, //do not use differential checkin false, //not a config template false, //file->symlinks meaningless true, //capture permissions null, //file->checkinmode meaningless null); //no special processing of rsrc } }