B が A に対して呼び出し互換で、以下の場合に A の使用を安全に B の使用と置き換えられる場合、コンポーネント B はコンポーネント A に対してインストール互換性を持つと言えます。
A のインストールブロックの呼び出し
A からのコンポーネントの拡張
A への参照を含むコンポーネント
インストールの互換性とは、基本的に構造上の互換性を意味します。
インストール互換性によって課される制約は、オリジナルがインストールされたデータ構造を変更せずに、既存のインストール済みコンポーネントを別のインストール互換コンポーネントに安全に置き換えるためのものです。 呼び出し互換のコンポーネントは、データ構造を適切に更新するために元のコンポーネントに再インストールしなければならない場合があるので、呼び出し互換性はインストール互換よりかなり弱いものです。
インストールの互換性を保つためには、B と A は同じバージョンツリーに属している必要があります。 2 つの別々のバージョンツリーからのコンポーネントであってはなりません。
プロビジョニングソフトウェア は、型として機能するコンポーネントだけにインストールの互換性を要求します。 具体的には、コンポーネント型が新しいバージョンのコンポーネントを参照するために更新されるときには、新しいバージョンは元のバージョンに対してインストール互換性を持ちます。 したがって、その型から派生するすべての既存コンポーネントを再構築や再インストールせずに、コンポーネント型に対してインストール互換の更新を実行できます。 結果として、インストール互換ではないコンポーネント型が変更された場合、クライアントはその変更を独自の型名を持つ新しい別のコンポーネントバージョンツリーとして符号化する必要があります。 このような場合、新しいコンポーネント型は、元のコンポーネント型から拡張することによって、呼び出し互換性を維持できます。 型間の関係を簡単に特定するには、コンポーネント型名を符号化するバージョン管理システムを使用します。 たとえば、コンポーネント名 EBJ-1.0 と EJB-1.1 がある場合、EJB-1.1 は EJB-1.0 コンポーネント型の新しいバージョンであることを簡単に特定できます。
インストール互換である場合は呼び出し互換でもありますが、呼び出し互換であってもインストール互換であるとは限りません。 また、呼び出し互換でない場合は、インストール互換ではありません。
この節では、ブール型演算子として機能し、<if> 手順の条件内で使用される要素を紹介します。 ブール型演算子は、true または false として評価する属性を持っています。
特定の値が true かどうかを判断するために使用するブール型演算子です。 「value」という属性を 1 つ含み、子要素は持ちません。 「value」属性の値が大文字小文字も含めて「true」と等しいときだけ、true となります。
名前 |
型 |
必須 |
構成可能 |
説明 |
---|---|---|---|---|
value |
文字列 |
必須 |
はい |
「true」と比較する値 |
要素 |
結果 |
---|---|
<istrue value="True"/> |
true |
<istrue value="yes"/> |
false |
<istrue value=":[var]"/> |
var の値が true の場合、true |
特定の値が別の値と等しいかどうかを判断するために使用されるブール型演算子です。 属性「value1」、「value2」、「exact」を含み、子要素は持っていません。 「value1」属性と「value2」属性の値が等しい ときだけ、true となります。 「exact」が true の場合は、大文字小文字を含めて等しくなければなりません。その他の場合は大文字と小文字は区別されません。
<istrue value="..."/> は、<equals value1="..." value2="true"/> の構文上の短縮形です。
名前 |
型 |
必須 |
構成可能 |
説明 |
---|---|---|---|---|
value1 |
文字列 |
はい |
可能 |
比較する値 |
value2 |
文字列 |
はい |
可能 |
比較するもう 1 つの値 |
exact |
ブール型 |
いいえ |
不可 |
true の場合は大文字小文字も区別され、false の場合は区別されない。 デフォルトは false |
要素 |
結果 |
---|---|
<equals value1="True" value2="true"/> |
true |
<equals value1="True" value2="true" exact="true"/> |
false |
<equals value1="apple" value2="apple" exact="true"/> |
true |
<equals value1="apple" value2="orange"/> |
false |
<equals value1=":[var1]" value2=":[var2]"/> |
var1 の値が var2 の値と等しい場合、true |
特定の値がパターンに一致するかどうかを判断するために使用されるブール型演算子です。 属性「value」、「pattern」、「exact」を含み、子要素は持ちません。 「value」属性が「pattern」属性の値に含まれる glob スタイルのパターンに一致する場合だけ、true となります。 「exact」が true の場合は、大文字小文字を含めて一致しなければなりません。その他の場合は大文字と小文字は区別されません。
名前 |
型 |
必須 |
構成可能 |
説明 |
---|---|---|---|---|
value |
文字列 |
はい |
はい |
パターンと合わせられる値 |
pattern |
文字列 |
はい |
はい |
一致しなければならないパターン |
exact |
boolean |
いいえ |
不可 |
true の場合は大文字小文字も区別され、false の場合は区別されない。 デフォルトは false |
要素 |
結果 |
---|---|
<matches value="True" pattern="true"/> |
true |
<matches value="True" pattern="t*"/> |
true |
<matches value="blue" pattern="*u"/> |
false |
<matches value="True" pattern="t?ue"/> |
true |
<matches value="Tue" pattern="t?ue"/> |
false |
<matches value="True" pattern="t*" exact="true"/> |
false |
<matches value=":[var1]" pattern=":[var2]"/> |
var1 の値が var2 のパターンに一致した場合、true
|
別のブール型演算子の結果を否定するブール型演算子です。 属性を含まず、ブール型演算子である子要素を 1 つだけ含みます。 含んでいる演算子が true でない場合だけ、true となります。
要素 |
結果 |
<not><istrue value="True"/></not> |
false |
<not><equals value1="apple" value2="orange"/></not> |
true
|
他のブール型演算子の結果の AND 論理演算を行うブール型演算子です。 属性は含みません。 ブール型演算子の子要素をいくつでも含むことができます。 すべての子要素が true の場合だけ、true となります。
要素 |
結果 |
---|---|
<and/> |
true |
<and><istrue value="True"/></and> |
true |
<and><equals value1="apple" value2="orange"/></and> |
false |
<and> <matches value="apple" value2="ap*e"/> <istrue value="TRUE"/> <not><equals value1="apple" value2="orange"/></not></and> |
true |
<and> <matches value="apple" value2="ap*e"/> <istrue value="TRUE"/> <equals value1="apple" value2="orange"/></and> |
false |
他のブール型演算子の結果の OR 論理演算を行うブール型演算子です。 属性は含みません。 ブール型演算子の子要素をいくつでも含むことができます。 True である子要素を 1 つ以上含む場合だけ、true となります。
要素 |
結果 |
---|---|
<or/> |
false |
<or><istrue value="True"/></or> |
true |
<or><equals value1="apple" value2="orange"/></or> |
false |
<or> <matches value="apple" value2="p*e"/> <istrue value="FALSE"/> <equals value1="apple" value2="orange"/></or> |
false |
<or> <matches value="apple" value2="p*e"/> <not><istrue value="FALSE"/></not> <equals value1="apple" value2="orange"/></or> |
true |
entityName 型の属性は最長 512 で、以下のパターンに一致します。
[a-zA-Z_][0-9a-zA-Z-_. ]* |
systemName 型の属性は最長 64 で、以下のパターンに一致します。
[a-zA-Z_][0-9a-zA-Z-_. +]* |
identifier 型の属性は最長 32 で、以下のパターンに一致します。
[a-zA-Z_][0-9a-zA-Z_]* |
pathName 型の属性は最長 512 で、以下のパターンのどれかに一致します。
"/" ( "/" identifier )+ |
pathReference 型の属性は、以下の構文を持っています。
pathReference: absolutePath relativePath absolutePath: "/" "/" relativePath relativePath: relativePathStart relativePathStart "/" relativePath relativePathStart: ".." identifier |
modifierEnum 型の属性の値は、ABSTRACT または FINAL のどちらかです。 一般的に、ABSTRACT は関連エンティティが派生コンポーネントによって無効にされる必要があることを指し、FINAL は関連エンティティが無効にできないことを指します。
accessEnum 型の属性の値は、PUBLIC、PROTECTED、PATH、または PRIVATE です。 一般的に、PUBLIC は関連エンティティのアクセスが無制限なことを指し、PROTECTED はアクセスが派生コンポーネントと同じパスのエンティティに限られることを指します。PATH は、アクセスが同じパスのエンティティに限られることを意味し、PRIVATE はアクセスが宣言コンポーネントだけに限られることを意味します。
version 型の属性は、以下のパターンに一致します。
[0-9]+\.[0-9]+ |
schemaVersion 型の属性は、現在 1 つの値しか持てません。
4.1 |
この節では、コンポーネントに加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。
変更内容 |
インストール互換 |
呼び出し互換 |
---|---|---|
非最終から最終 |
なし |
あり |
最終から非最終 |
あり |
あり |
非抽象から抽象 |
なし |
あり |
抽象から非抽象 |
あり |
あり |
アクセス制限の強化 |
なし |
なし |
アクセス制限の緩和 |
あり |
あり |
説明、ラベル、ソフトウェアベンダー、または作成者の変更 |
なし |
あり |
名前またはパスの変更 |
なし |
あり |
単純コンポーネントから複合コンポーネントへの変更 |
なし |
なし |
複合コンポーネントから単純コンポーネントへの変更 |
なし |
なし |
この節では、プラットフォームに加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。
変更内容 |
インストール互換 |
呼び出し互換 |
---|---|---|
より一般的なプラットフォームへの変更 |
あり |
あり |
より固有のプラットフォームへの変更 |
なし |
あり |
関係性のないプラットフォーム |
なし |
あり |
ここでは、プラットフォーム X が Y の子孫の場合、プラットフォーム X は Y より固有となります。 X が Y の祖先の場合、プラットフォーム X は Y より一般的になります。
この節では、LimitToHostSet に加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。
変更内容 |
インストール互換 |
呼び出し互換 |
---|---|---|
limitToHostSet へのすべての変更 |
なし |
あり |
プラットフォームと異なり、limitToHostSet は明示的な制御の存在しない一般的なクライアント固有のホストセットを指定します。 メンバーシップはいつでも変更される可能性があるので、多少でも固有のホストセットの概念を強制することはできません。
この節では、Extends に加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。
変更内容 |
インストール互換 |
呼び出し互換 |
---|---|---|
オリジナルの新しいベースコンポーネントインスタンス |
なし |
あり |
新しいものの元のベースコンポーネントインスタンス |
なし |
なし |
オリジナルと無関係な新しいベースコンポーネント |
なし |
なし |
オリジナルとインストール互換である新しいベースコンポーネント |
あり |
あり |
オリジナルと呼び出し互換である新しいベースコンポーネント |
なし |
あり |
この節では、変数に加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。
変更内容 |
インストール互換 |
呼び出し互換 |
---|---|---|
新しい変数の追加 |
なし |
あり |
非専用変数の削除または名前変更 |
なし |
なし |
専用変数の削除または名前変更 |
あり |
あり |
最終変数のデフォルト値の変更 |
なし |
あり |
非最終変数とデフォルト値の変更 |
あり |
あり |
非最終から最終 |
なし |
あり |
最終から非最終 |
あり |
あり |
非抽象から抽象 |
なし |
あり |
抽象から非抽象 |
あり |
あり |
アクセス制限の強化 |
なし |
なし |
アクセス制限の緩和 |
なし |
あり |
この節では、コンポーネント Ref リスト に加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。
変更内容 |
インストール互換 |
呼び出し互換 |
非最終から最終 |
なし |
あり |
最終から非最終 |
あり |
あり |
オリジナルの新しい型インスタンス |
なし |
あり |
新しいものの元の型インスタンス |
なし |
なし |
オリジナルと関連性のない新しい型 |
なし |
なし |
オリジナルとインストール互換である新しい型 |
あり |
あり |
オリジナルと呼び出し互換である新しい型 |
なし |
あり |
この節では、コンポーネント Ref に加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。
変更内容 |
インストール互換 |
呼び出し互換 |
---|---|---|
非最終から最終 |
なし |
あり |
最終から非最終 |
あり |
あり |
非抽象から抽象 |
なし |
あり |
抽象から非抽象 |
あり |
あり |
installMode の変更 |
なし |
なし |
新しいコンポーネント ref の追加 |
なし |
あり |
入れ子にされたコンポーネント ref の削除または名前変更 |
なし |
なし |
最上位コンポーネント ref の削除または名前変更 |
なし |
なし |
入れ子にされたコンポーネントの argList 引数の追加、変更、または削除 |
なし |
あり |
最上位コンポーネントの argList 引数の追加、変更、または削除 |
あり |
あり |
オリジナルの新しい型インスタンス |
なし |
あり |
新しいものの元の型インスタンス |
なし |
なし |
オリジナルと関連性のない新しい型 |
なし |
なし |
オリジナルとインストール互換である新しい型 |
あり |
あり |
オリジナルと呼び出し互換である新しい型 |
なし |
あり |
オリジナルの新しい入れ子 comp インスタンス |
なし |
あり |
新しいものの元の入れ子 comp インスタンス |
なし |
なし |
オリジナルと関係のない新しい入れ子 comp |
なし |
なし |
オリジナルとインストール互換の新しい入れ子 comp |
あり |
あり |
オリジナルと呼び出し互換の新しい入れ子 comp |
なし |
あり |
この節では、リソースに加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。
変更内容 |
インストール互換 |
呼び出し互換 |
---|---|---|
非最終から最終 |
なし |
あり |
最終から非最終 |
あり |
あり |
非抽象から抽象 |
なし |
あり |
抽象から非抽象 |
あり |
あり |
インストールパス、名前、グループ、またはユーザーの変更 |
なし |
あり |
rsrcName、rsrcVersion の変更 |
なし |
あり |
この節では、インストール、制御、アンインストールブロックに加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。
変更内容 |
インストール互換 |
呼び出し互換 |
---|---|---|
非最終から最終 |
なし |
あり |
最終から非最終 |
あり |
あり |
非抽象から抽象 |
なし |
あり |
抽象から非抽象 |
あり |
あり |
アクセス制限の強化 |
なし |
なし |
アクセス制限の緩和 |
なし |
あり |
新しい非専用ブロックの追加 |
なし |
あり |
新しい専用ブロックの追加 |
あり |
あり |
非専用ブロックの削除または名前変更 |
なし |
なし |
専用ブロックの削除または名前変更 |
あり |
あり |
ブロック本体の変更 |
あり |
あり |
ブロックの局所変数の追加、変更、または削除 |
あり |
あり |
専用ブロックのパラメタの追加、変更、または削除 |
あり |
あり |
必須パラメタの非専用ブロックへの追加 |
なし |
なし |
オプションパラメタの追加 |
あり |
あり |
オプション/必須パラメタの削除 |
あり |
あり |
オプションのパラメタの名前変更 |
あり |
あり |
非専用ブロックの必須パラメタの名前変更 |
なし |
なし |
非専用ブロックでのパラメタのオプションから必須への変更 |
なし |
なし |
パラメタの必須からオプションへの変更 |
あり |
あり |
パラメタ displayMode の変更 |
あり |
あり |
パラメタ prompt の変更 |
あり |
あり |
準備、キャプチャ、クリーンアップブロックを処理する場合以外、スナップショットブロックの互換性マトリックスは、基本的に上記の他のブロックのマトリックスと同じです。
変更内容 |
インストール互換 |
呼び出し互換 |
---|---|---|
準備/クリーンアップブロックの追加、変更、または削除 |
あり |
あり |
キャプチャ手順の追加、変更、または削除 |
あり |
あり |
この節では、Diff Ignore に加えることができる変更と、それが呼び出し互換およびインストール互換 (またはその一方) であるかどうかを示します。
変更内容 |
インストール互換 |
呼び出し互換 |
---|---|---|
ignore 指示の追加、変更、または削除 |
あり |
あり |
ignore 指示は、diff 実行時にしか考慮されず、既存のスナップショットの状態に影響を与えることはありません。