<resourceRef> 要素は、<component> 要素のオプションの子です。当該コンポーネントによって管理されるリソースを指定します。この要素を使用できるのは単純コンポーネントのみです。この要素は、複合コンポーネントのみが使用できる <componentRefList> 要素とは併用できません。この要素およびその子の構成可能属性は、コンポーネント置換変数を参照できます。リソースは、暗黙の PUBLIC アクセスモードを取ります。この要素を使用する場合、この要素は 1 回しか出現できません。
コンポーネントが単純コンポーネントから派生する場合、あるいは <resourceRef> 要素を含む非派生コンポーネントである場合、そのコンポーネントは単純コンポーネントになります。派生コンポーネントが単純コンポーネントから派生している場合、その派生コンポーネントに含めることができるのは <resourceRef> 要素だけです。
<resourceRef> 要素には子要素があり、それらは次の順序で出現する必要があります。
<installSpec> – 非派生コンポーネントの必須要素で、リソースのインストール方法を指定します。この要素を派生コンポーネントに含めることはできません。
<resource> – 非抽象コンポーネントの必須要素で、関連付けられたリソースを特定します。この要素を抽象的なコンポーネントに含めることはできません。
デフォルトでは、派生コンポーネントはそのベースコンポーネントの <resourceRef> 要素を継承します。
派生コンポーネントは、<resourceRef> 要素を宣言し直すことによって、継承された非最終 <resourceRef> 要素の修飾子と <resource> 要素をオーバーライドできます。<resourceRef> 要素がオーバーライドされる際に、<installSpec> 要素は除外されます。これはそのコンテンツをオーバーライドすることができないためです。<resource> 要素が指定されるのは、優先する<resourceRef> が抽象でない場合だけです。
<resourceRef> がオーバーライドされる際に、ベースコンポーネント内の使用も含め、リソースの使用 (<deployResource>、<addResource> など) はすべてオーバーライドされた値に解決されます。
派生コンポーネントが非抽象と宣言された場合で、ベースコンポーネントの <resourceRef> 要素が抽象のとき、その派生コンポーネントは <resourceRef> 要素をオーバーライドする必要があります。
<resourceRef> 要素には 1 つのオプション属性 modifier があり、この属性は modifierEnum 型の値を持っています。modifier 属性は次のように、リソースのオーバーライド要件を指定します。
ABSTRACT – <resourceRef> の <resource> 要素は省略されます。このため、この要素は非抽象派生コンポーネントによって指定する必要があります。<resourceRef> を抽象と宣言できるのは、コンポーネントも抽象と宣言されている場合だけです。非抽象 <resourceRef> は、<resource> 要素を宣言する必要があります。
FINAL – 派生コンポーネントで<resourceRef> をオーバーライドすることはできません。
この属性を指定しない場合、派生コンポーネントは <resourceRef> をオーバーライドするかどうかを選択できます。
<installSpec> 要素は <resourceRef> 要素の子です。関連付けられたリソースのインストール方法を指定します。この要素は派生コンポーネントによって継承され、オーバーライドできません。しかし、ベースコンポーネントは <installSpec> 属性の値指定にコンポーネント変数を使用でき、これらの変数の値はオーバーライドできます。
<installSpec> 要素には次の属性があります。これらの属性は、コンポーネントスコープの置換変数を参照できます。
path – オプション文字列で、リソースのインストール先となるパス。相対ディレクトリは、包含コンポーネントの installPath 属性に相対的であると見なされます。この引数を指定しないと、デフォルトでコンポーネントの installPath 属性が使用されます。
permissions – オプション文字列で、インストール時に当該リソースに割り当てるアクセス許可を示します。
文字列の書式は、UNIX chmod コマンドでコマンドで定義されているように 3 桁の 8 進数を使用します。chmod(1M) のマニュアルページを参照してください。この属性を指定しないと、リソースはデフォルトのアクセス許可でインストールされます。
user – オプション文字列で、インストール時の当該リソースの所有者。この属性を指定しないと、ユーザーはプラン実行機能 (plan executor) によって決定されます。
group – オプション文字列で、インストール時に当該リソースに割り当てるグループ。この属性を指定しないと、グループはプラン実行機能 (plan executor) によって決定されます。
deployMode – オプション属性で、関連付けられたディレクトリリソースの配備方法を指定します。リソースがディレクトリでない場合、この属性は無視されます。
ADD_TO – 対象ディレクトリ内の任意の既存ファイルにディレクトリコンテンツが追加されます。
REPLACE – 対象ディレクトリ内のすべての既存ファイルがディレクトリコンテンツによって置き換えられます。
この引数を指定しない場合、デフォルト値 REPLACE が使用されます。
diffDeploy – boolean 型のオプション値で、リソースを差分配備モードで配備すべきかどうかを指定します。この属性を指定しないと、差分配備モードが無効になります。差分配備モードを有効にした場合、それまでに配備されたことがないリソースだけが配備されます。
<resource> 要素は <resourceRef> 要素の子であり、当該コンポーネントによって配備されるリソースを特定します。
参照されたリソースが構成可能なリソースである場合、包含コンポーネントにアクセス可能な任意のコンポーネントスコープ変数に対する置換変数参照を含むことができます。
<resource> 要素には次の属性があります。