plugin-descriptor.xml でプラグイン例を定義します。このあとに示す例の各項目について説明します。
<plugin> 要素のほとんどの属性には標準の値を使用しています。3 つの例外は、name、version、description の各属性です。
<dependencyList> 要素では、このプラグイン例が正常に機能するために system プラグインの version 1.0 が必要であることを示しています。system プラグインは Sun N1 Service Provisioning System ソフトウェアのコアの部分であり、常に存在する必要があります。
<folder> 要素では、Solaris のオブジェクトを保存するフォルダを作成しています。
<hostType> 要素では、プラグインで global_zone ホストタイプを参照することを宣言しています。varlist 属性で、このホストタイプに一連の変数を関連付けています。
<hostSearch> 要素では、このプラグインがプロビジョニングできるターゲットホストを特定する一連の条件を定義しています。
<hostSet> 要素では、このプラグインがプロビジョニングできるターゲットホストのサブセットを定義しています。
最初の <component> 要素では、リソースが solaris/container_util.xml のコンポーネントを定義しています。
2 番目の <component> 要素では、プラグインに Container コンポーネントを含めています。
3 番目の <component> 要素では、Patch という新しいコンポーネントタイプを作成しています。このコンポーネントタイプには次のような特徴があります。
Patch コンポーネントタイプは solaris グループに表示されます。
「Component Create」ページでコンポーネントタイプのドロップダウンメニューにコンポーネントタイプが表示されないようにするには、グループの値を hidden に変更します。
Patch コンポーネントタイプのバッキングコンポーネントは 1.1/components/com/sun/solaris/Patch.xml です。
<plan> 要素では、Container-create.xml プランをプラグインの一部として指定しています。
<?xml version="1.0" encoding="UTF-8"?>
<plugin name="com.sun.solaris"
description="Solaris plugin @buildtag@"
version="1.1"
vendor="Sun Microsystems Inc"
xmlns="http://www.sun.com/schema/SPS"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sun.com/schema/SPS plugin.xsd"
schemaVersion="5.2">
<readme jarPath="readme.txt"/>
<serverPluginJAR jarPath="1.1/resources/com/sun/solaris/plugin-com.sun.solaris.jar"/>
<gui jarPath="gui/pluginUI.xml"/>
<dependencyList>
<pluginRef name="system" version="1.0"/>
</dependencyList>
<memberList>
<folder name="/com/sun/solaris" description="Solaris plugin folder"/>
<hostType name="global_zone"
description="a physical host from which partitioned
local zones can be created">
<varList>
<var name="local_zone_base_path" default="/export/zones"/>
<var name="local_zone_default_name" default=""/>
<var name="local_zone_default_filesystem" default="SPARSE"/>
<var name="local_zone_connection_type" default="RAW"/>
<var name="local_zone_port" default="1131"/>
<var name="local_zone_advanced_params" default=""/>
<var name="n1sps_cli_host" default="masterserver"/>
<var name="n1sps_cli_path"
default="/opt/SUNWn1sps/N1_Service_Provisioning_System_*/cli/bin/cr_cli"/>
</varList>
</hostType>
<hostSearch name="global_zones"
description="matches Solaris global zone hosts">
<criteriaList>
<criteria name="sys.OS" pattern="SunOS"/>
<criteria name="sys.OSVersion" pattern="5.10"/>
<criteria name="sys.hostType"
pattern="com.sun.solaris#global_zone"/>
</criteriaList>
<appTypeCriteria ra="true"/>
<physicalCriteria physical="true"/>
</hostSearch>
<hostSet name="global_zones" description="Solaris global zones">
<hostSearchRef name="global_zones"/>
</hostSet>
...
<component jarPath="1.1/components/com/sun/solaris/container_util.xml"
majorVersion="true">
<resource jarPath="1.1/resources/com/sun/solaris/container_util/"
name="/com/sun/solaris/container_util" type="DIRECTORY"
majorVersion="true"/>
</component>
<component jarPath="1.1/components/com/sun/solaris/Container.xml"
majorVersion="true"/>
<component jarPath="1.1/components/com/sun/solaris/Patch.xml"
majorVersion="true">
<componentType name="Patch" group="solaris" order="000000-000000-000001"
indentLevel="1" />
</component>
...
<plan jarPath="1.1/plans/com/sun/solaris/Container-create.xml"
majorVersion="true"/>
...
</memberList>
</plugin>