3.3. XML ルール構文
3.3.1. 構文 リンクのコピーリンクがクリップボードにコピーされました!
ルールの when
で許可される条件は、GraphOperation を拡張する必要があり、現在、Java クラス、XML ファイル、プロジェクト、およびファイルコンテンツの評価が含まれます。XML ルールは Java ベースのルールアドオンの後にモデル化されるため、関連する Java クラスの JavaDocs へのリンクは、その動作をよりよく理解するために提供されます。
完全な XML ルールスキーマは http://windup.jboss.org/schema/windup-jboss-ruleset.xsd にあります。
次のセクションでは、より一般的な XML when
ルール条件を説明します。
- <javaclass> 条件構文
- <xmlfile> 条件構文
- <project> 条件構文
- <filecontent> 条件構文
- <file> 条件構文
- <has-hint> 条件構文
- <has-classification> 条件構文
- <graph-query> 条件構文
- <dependency> 条件構文
デフォルトでは、when
ルール条件が複数指定された場合に、ルールが一致するには、すべての条件が満たされる必要があります。
3.3.1.1. syntax リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.1.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
<javaclass>
要素を使用して、インポート、メソッド、変数宣言、アノテーション、クラス実装、および Java クラスに関連する他の項目を検索します。<javaclass>
条件のより詳細な理解は、JavaClass クラスの JavaDoc を参照してください。
以下は、WebLogic 固有の Apache XML パッケージをテストするルールの例です。
3.3.1.1.2. 要素の作成 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.1.2.1. 要素属性 リンクのコピーリンクがクリップボードにコピーされました!
属性名 | タイプ | 説明 |
---|---|---|
references | CLASS_NAME | 一致するパッケージまたはクラス名。ワイルドカード文字を使用できます。この属性は必須です。 注記
パフォーマンス上の理由から、ワイルドカード文字を使用して参照を開始しないでください。たとえば、 references="weblogic.apache.xml.{*}"
|
matchesSource | STRING | 一致する正確な正規表現。これは、ハードコーディングされた文字列を区別する場合に便利です。この属性は必須です。 matchesSource="log4j.logger"
|
as | VARIABLE_NAME |
ルールに割り当てられた変数名。これにより、後で処理した参照として使用できるようになります。以下の as="MyEjbRule"
|
from | VARIABLE_NAME |
from="MyEjbRule"
|
in | PATH_FILTER | この正規表現 (regex) の命名パターンに一致する入力ファイルをフィルターします。ワイルドカード文字を使用できます。 in="{*}File1"
|
3.3.1.1.2.2. 子要素 リンクのコピーリンクがクリップボードにコピーされました!
子要素 | 説明 |
---|---|
<location> | 参照が Java クラスで見つかった場所。場所は、アノテーション、フィールドおよび変数宣言、インポート、およびメソッドを参照できます。有効な値の完全なリストは、TypeReferenceLocation の JavaDoc を参照してください。 <location>IMPORT</location>
|
<annotation-literal> | アノテーション内のリテラル値に一致します。
以下の例は <javaclass references="org.package.MyAnnotation"> <location>ANNOTATION</location> <annotation-literal name="myvalue" pattern="test"/> </javaclass>
この場合、 |
<annotation-type> | 特定のアノテーションタイプで一致します。アノテーション要素に対して照合されるサブ条件を指定できます。
以下の例は、 |
<annotation-list> | アノテーション内の配列の項目で一致します。配列インデックスが指定されていない場合は、配列内の任意のアイテムに適用されると条件が一致します。この要素と照合するサブ条件を指定できます。
以下の例は
この場合、 |
3.3.1.2. 構文 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.2.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
<xmlfile>
要素を使用して XML ファイルで情報を検索します。<xmlfile>
条件の理解を深めるには、XmlFile クラスの JavaDoc を参照してください。
以下は、XML ファイルをテストするルールの例です。
3.3.1.2.2. 要素の作成 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.2.2.1. 要素属性 リンクのコピーリンクがクリップボードにコピーされました!
属性名 | タイプ | 説明 |
---|---|---|
matches | XPATH | XML ファイル条件で一致します。 matches="/w:web-app/w:resource-ref/w:res-auth[text() = 'Container']"
|
xpathResultMatch | XPATH_RESULT_STRING | 指定の正規表現に一致する結果を返します。 <xmlfile matches="//foo/text()" xpathResultMatch="Text from foo."/>
|
as | VARIABLE_NAME |
ルールに割り当てられた変数名。これにより、後で処理した参照として使用できるようになります。以下の as="MyEjbRule"
|
in | PATH_FILTER | この正規表現 (regex) の命名パターンに一致する入力ファイルをフィルターを設定するのに使用されます。ワイルドカード文字を使用できます。 in="{*}File1"
|
from | VARIABLE_NAME |
from="MyEjbRule"
|
public-id | PUBLIC_ID | DTD public-id 正規表現。 public-id="public"
|
3.3.1.2.2.2. がカスタム関数と 一致 します。 リンクのコピーリンクがクリップボードにコピーされました!
matches
属性は、ルール変数スタックに一致した値の設定など、有用な影響を及ぼす可能性のある組み込みのカスタム XPath 関数をいくつか使用できます。
機能 | 説明 |
---|---|
| XPath 式を文字列と照合します。MTA パラメーター化プレースホルダーが含まれている可能性があります。 matches="windup:matches(//foo/@class, '{javaclassname}'"
これは、すべての |
3.3.1.2.2.3. 子要素 リンクのコピーリンクがクリップボードにコピーされました!
子要素 | 説明 |
---|---|
<namespace> |
XML ファイルで参照される名前空間。この要素には、 <namespace prefix="abc" uri="http://maven.apache.org/POM/4.0.0"/>
|
3.3.1.3. 構文 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.3.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
<project>
要素を使用して、プロジェクトの特性について Maven POM ファイルをクエリーします。<project>
条件をよりよく理解するには、Project クラスの JavaDoc を参照してください。
以下は、2.0.0.Final と 2.2.0.Final の間で JUnit 依存関係バージョンを確認するルールの例になります。
3.3.1.3.2. 要素の作成 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.3.2.1. 要素属性 リンクのコピーリンクがクリップボードにコピーされました!
<project>
要素は、プロジェクトの Maven POM ファイルと照合するために使用されます。この条件を使用して、プロジェクトの依存関係をクエリーできます。属性自体はありません。
3.3.1.3.2.2. 子要素 リンクのコピーリンクがクリップボードにコピーされました!
子要素 | 説明 |
---|---|
<artifact> |
プロジェクトの依存関係に対してクエリーするために |
3.3.1.3.2.3. 要素属性 リンクのコピーリンクがクリップボードにコピーされました!
属性名 | タイプ | 説明 |
---|---|---|
groupId | PROJECT_GROUP_ID |
依存関係の |
artifactId | PROJECT_ARTIFACT_ID |
依存関係の |
fromVersion | FROM_VERSION |
アーティファクトの下位バージョンバインドを指定します。例: |
toVersion | TO_VERSION |
アーティファクトの上位バージョンバインドを指定します。例: |
3.3.1.4. 構文 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.4.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
<filecontent>
要素を使用して、ファイル内の文字列またはテキストを検索します (例: Properties ファイルの行)。<filecontent>
条件のより詳細な理解は、FileContent クラスの JavaDoc を参照してください。
3.3.1.4.2. の作成 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.4.2.1. 要素属性 リンクのコピーリンクがクリップボードにコピーされました!
属性名 | タイプ | 説明 |
---|---|---|
pattern | String | 指定されたパラメーター化された文字列に対してファイルの内容を一致させます。この属性は必須です。 |
filename | String | 提供されるパラメーター化された文字列に対してファイル名を一致させます。 |
as | VARIABLE_NAME |
ルールに割り当てられた変数名。これにより、後で処理した参照として使用できるようになります。以下の as="MyEjbRule"
|
from | VARIABLE_NAME |
from="MyEjbRule"
|
3.3.1.5. 構文 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.5.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
<file>
要素を使用して、特定の名前のファイル (例: ibm-webservices-ext.xmi
) ファイルが存在するかどうかを検索します。<file>
条件のより詳細な理解は、File クラスの JavaDoc を参照してください。
3.3.1.5.2. 要素の作成 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.5.2.1. 要素属性 リンクのコピーリンクがクリップボードにコピーされました!
属性名 | タイプ | 説明 |
---|---|---|
filename | String | 提供されるパラメーター化された文字列に対してファイル名を一致させます。この属性は必須です。 |
as | VARIABLE_NAME |
ルールに割り当てられた変数名。これにより、後で処理した参照として使用できるようになります。以下の as="MyEjbRule"
|
from | VARIABLE_NAME |
以下に例を示します。 from="MyEjbRule"
|
3.3.1.6. 構文 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.6.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
<has-hint>
要素を使用して、ファイルまたは行にすでに関連付けられているヒントがあるかどうかをテストします。これは主に、ヒントがすでに存在する場合に起動を防止するため、また他の条件が適用されない場合のデフォルト実行のルールを実装するために使用されます。<has-hint>
条件のより詳しい情報は、HasHint クラスの JavaDoc を参照してください。
以下は、IBM JMS 宛先メッセージのヒントが存在するかどうかを確認し、含まれていない場合にそれを含めるルールの例です。
3.3.1.6.2. の作成 リンクのコピーリンクがクリップボードにコピーされました!
<has-hint>
要素は、ファイルまたは行のヒントが存在するかどうかを判断するために使用されます。子要素はありません。
3.3.1.6.2.1. 要素属性 リンクのコピーリンクがクリップボードにコピーされました!
属性名 | タイプ | 説明 |
---|---|---|
message | String | ヒントを提供されたメッセージ文字列と照合できるようにする任意の引数。 |
3.3.1.7. 構文 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.7.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
<has-classification>
要素を使用して、ファイルまたは行に分類があるかどうかをテストします。これは主に、分類がすでに存在する場合に起動を防止するため、また他の条件が適用されない場合のデフォルト実行のルールを実装するために使用されます。<has-classification>
条件のより詳細な理解は、HasClassification クラスの JavaDoc を参照してください。
3.3.1.7.2. の作成 リンクのコピーリンクがクリップボードにコピーされました!
has-classification
要素は、指定された分類が存在するかどうかを判断するために使用されます。子要素はありません。
3.3.1.7.2.1. 要素属性 リンクのコピーリンクがクリップボードにコピーされました!
属性名 | タイプ | 説明 |
---|---|---|
title | String | 分類と照合する任意のタイトル。 |
3.3.1.8. 構文 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.8.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
<graph-query>
要素を使用して、生成されたグラフで任意の要素を検索します。この要素は、主に特定のアーカイブを検索するために使用されます。<graph-query>
条件のより詳細な理解は、QueryHandler クラスの JavaDoc を参照してください。
以下は、ehcache
パッケージが見つかったかどうかを判断するためにテストするルールの例です。
3.3.1.8.2. の作成 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.8.2.1. 要素属性 リンクのコピーリンクがクリップボードにコピーされました!
属性名 | タイプ | 説明 |
---|---|---|
discriminator | MODEL_TYPE |
検索に使用するモデルのタイプ。これは任意の有効なモデルにすることができます。ただし、アーカイブの調査には |
as | VARIABLE_NAME |
ルールに割り当てられた変数名。これにより、後で処理した参照として使用できるようになります。以下の as="MyEjbRule"
|
from | VARIABLE_NAME |
from="MyEjbRule"
|
3.3.1.8.2.2. プロパティー リンクのコピーリンクがクリップボードにコピーされました!
プロパティー名 | タイプ | 説明 |
---|---|---|
name | String |
選択したモデル内で照合する属性の名前。ファイルベースのモデルを使用する場合は、 |
type | property-type |
予想されるプロパティーの型 ( |
searchType | property-search-type |
条件の一致方法を定義します。 |
3.3.1.9. 構文 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1.9.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
要素を使用して、アプリケーションの POM ファイル内で定義された依存関係を検索し、ターゲットランタイムでサポートされるかどうかを判別します。
以下は、1.6.0 までのバージョンがある org.springframework.boot
グループに属するすべてのアーティファクトを確認するルールの例です。