Rational Team Concert for System z 依存関係データの概要

Rational Team Concert™ for System z® を使用して依存関係データを取得し、zComponent プロジェクトのソース成果物を照会することができます。依存関係データは、共有サンプル集に含まれる COBOL プログラムなどのソース・ファイル間の関係を示します。依存関係データを収集するには、Jazz™ Team Server リポジトリーでソース・ファイルを構文解析します。この構文解析は、ビルド・プロセスで制御され、構文解析が使用可能になっている場合は、変更を提出する際にストリームを更新するときに行われます。

構文解析プログラムは、COBOL コピーブックを含め、ソース・コードから、ソースのタイプ (例えば、main または include) や依存関係などの情報を収集します。構文解析では、COBOL、PLI、アセンブラーなどを含む、各種言語がサポートされています。構文解析プログラムの出力は、リソース定義フレームワーク (RDF) 形式の XML 文書です。この RDF 文書には、SCM 内のファイルの itemIdstateId で構成される固有の URI が割り当てられます。ワークスペースまたはストリーム内の SCM から成果物を取得するには、この ID で十分です。

SPARQL 照会言語を使用して、依存関係データに対しさまざまな検索を実行することができます。Rational Team Concert for System z には、サーバー・レベルおよびクライアント・レベルで、3 つのデフォルトの照会 (getImpact、getDependents、getResource) 、または独自に作成する任意の SPARQL 照会を実行するアプリケーション・プログラミング・インターフェース (API) が用意されています。

照会の結果は、XML 文書の URI に制限されます。これらの照会と XML 文書を組み合わせることで、成果物をより簡単に参照できるようになり、例えば、所定のプログラムに対するファイルのリストをビルドするか、組み込みファイルに対する変更の影響を計算するか、どちらが必要かに応じて、成果物間をナビゲートすることができます。

前提条件: SPARQL 照会の作成には Eclipse の高度な開発スキルが必要です。

依存関係データの収集の概要

Rational Team Concert for System z は、変更セットを zComponent プロジェクト内のストリームに提出するときに依存関係データを収集します。ファイルを更新すると、Rational Team Concert for System z は対応する依存関係データを更新します。ただし、Rational Team Concert for System z は、最新バージョンの依存関係データのみを保持することに注意してください。つまり、同じコンポーネントを含む複数のストリームで、依存関係のメタデータ収集をオンにしてはならないということです。あるストリームを更新すると、他のストリームのデータが壊れてしまう可能性があるからです。1 つのストリームに対して依存関係データ収集をオンにする場合は、そのストリームに関係する特定のチーム・エリアを定義し、プロジェクト・レベルではなく、チーム・レベルでプロセスをカスタマイズすることができます。

依存関係データの内容

Rational Team Concert for System z は、成果物間の依存関係データを汎用の形式で保管します。つまり、ソース・ファイル言語にかかわらず、汎用の方法で依存関係に関する照会を作成することができます。
注: 一部の特性は言語依存ですが、これらについては後で説明します。
すべてのリソースが収集する依存関係データは、次のとおりです。

<ns:name xmlns:ns="http://www.ibm.com/xmlns/zindex/">EPSMTCOM.cpy</ns:name>
<ns:fileTypeCd xmlns:ns="http://www.ibm.com/xmlns/zindex/">INCL</ns:fileTypeCd>
<ns:languageCd xmlns:ns="http://www.ibm.com/xmlns/zindex/">COB</ns:languageCd>
<ns:logicalName xmlns:ns="http://www.ibm.com/xmlns/zindex/">EPSMTCOM</ns:logicalName>

  • name 属性は、ファイル拡張子を含む、ファイルの名前です。
  • logicalName 属性は、コンパイラーが使用する名前です。
  • fileTypeCd 属性は、汎用の属性です。有効な値には、maininclunkn が含まれます。
  • languageCd 属性は、ソース・ファイル言語を示します。
record count や、コメント行およびアンコメント行の数など、その他の一般的な特性も使用可能です。
依存関係は、次の属性を含む要素を使用して表します。

<ns:dependency xmlns:ns="http://www.ibm.com/xmlns/zindex/">
<rdf:Description>
<ns:dependencyName xmlns:ns="http://www.ibm.com/xmlns/zindex2/">EPSNBRPM</ns:dependencyName>
<ns:dependencyType xmlns:ns="http://www.ibm.com/xmlns/zindex2/">COPY</ns:dependencyType>
<ns:fileTypeCd xmlns:ns="http://www.ibm.com/xmlns/zindex2/">INCL</ns:fileTypeCd>
</rdf:Description>

DependencyName および fileTypeCD は、logicalName リソース値および fileTypeCd リソース値と一致します。dependencyType は、所定の言語に関連する依存関係のタイプを示します。

Rational Team Concert for System z 照会の作成の概要

Rational Team Concert for System z では、SPARQL 照会言語を使用して照会を作成することができます。Rational Team Concert for System z には、依存関係を参照するための 3 つのデフォルト照会に対する API が用意されています。

この API について詳しくは、以下のプラグイン、prerequisites を参照してください。
サーバー
com.ibm.teamz.rdf.query.service
クライアント
com.ibm.teamz.rdf.query.client
依存関係を参照するデフォルト照会は次のとおりです。
getImpact(String dependencyName)
この照会は、所定の名前を持つ、成果物への依存関係を含むすべてのリソースを取り出します。
getDependents(String dependencyName, String dependencyType)
この照会は、論理名および fileTypeCd が所定の dependencyName および fileType と一致するすべてのリソースを取り出します。
getResource(String resourceStorageURL)
この照会は、所定の URI に保管されているリソースの XML 表現を取り出します。URI の形式は、固定部分と変数部分で構成されます。固定部分は、サーバー・アドレスと、ストレージ域へのパスです。 固定部分は、次のようになります。

https://localhost:9443/jazz/storage/rtcz/

変数部分は、構文解析されたリソースの itemId および stateId から作成されます。これらの属性は、SCM API を使用して取得することができます。
_itemId=<itemId>_stateId=<stateId>
これは、完全な URI の例です。

https://localhost:9443/jazz/storage/rtcz/_itemId=_ILmFIIWEEd6tRoteGBvdPA_stateId=_IXz8YYWEEd6Gcog_JpIdrw

このような URI は、SCM 内の既知の成果物から作成するか、または照会から取得することができます。
runQuery(String sparql)
この照会は、カスタムの SPARQL ステートメントを実行し、検出されたリソースの URI のリストを返して応答します。次に、getDependents 照会で使用される、サンプル SPARQL 照会を示します。

PREFIX zindex: <http://www.ibm.com/xmlns/zindex/>
SELECT ?zindex
WHERE {
zindex:logicalName "CustCopy";
zindex:fileTypeCd "INCL".  }


フィードバック

この情報は役に立ちましたか。Jazz.net (要登録) のフォーラム内のコメントまたはバグ報告からフィードバックを提出することができます。