...
イベント ブローカーは、クライアントの接続性とメッセージの配布を NIO プロトコル (nio://) を使って管理します。デフォルト ポートは 61617 です (デフォルト ポートの変更方法については 「JMS イベント ブローカーのポート番号の変更」 を参照)。サンプル URI: nio://
hostname<HOSTNAME>:61617
イベント ブローカーにパブリッシュされるすべてのイベントは jms.log ファイルに記録されます。ログへのアクセス方法については 「Viewing Log Files」 を参照してください。
イベント ブローカー トピックへのアクセス
設定メニュー (歯車のアイコン) から [Report Center 設定] を選択し、サイドバー メニューの [イベント ブローカー] をクリックしてイベント ブローカーのインターフェイスにアクセスします。このインターフェースを使用すると、イベント ブローカーのトピックを確認できます。
...
デフォルトでは、DTP は MQTT トランスポート コネクタを使用するように設定されています。トランスポート コネクタは、<DTPコネクタは、<DTP_DATA_DIR>/conf
ディレクトリにある EventsConfig.xml 構成ファイルで指定します。
...
イベント トピック | 説明 |
---|
Anchor |
---|
| AnalysisMetadata-jms-topic-desc |
---|
| AnalysisMetadata-jms-topic-desc |
---|
| AnalysisMetadata
| このトピックは、違反エクスプローラーとテスト エクスプローラーでの解析メタデータの変更についてサブスクライバに通知します。 対応する JMSType に合わせて 2 種類のメッセージが存在します。 JMSType = 'violations' JMSType = 'test'
JSON メッセージのボディは以下のスキーマを使用します。 Code Block |
---|
language | xml |
---|
title | AnalysisMetadata イベント スキーマ |
---|
| {
"fields": [{
"newValue": "Retest",
"fieldName": "action"
}],
"type": "test",
"date": "2015-06-08T17:12:39.323+0000",
"user": "admin",
"ids": ["8a981276-e694-337e-b543-2187ab610c95"],
eventId": 18
} |
|
Anchor |
---|
| buildreview-jms-event-jms-topic-desc |
---|
| buildreview-jms-event-jms-topic-desc |
---|
| BuildReview
| このトピックは、Change Explorer でのビルド レビューへの変更についてサブスクライバに通知します。対応する JMSType に合わせて 2 種類のメッセージが存在します。 JMSType = 'Review' : レビューの作成、更新、削除へのリクエストが正常に満たされた場合、イベントがスローされます。JMSType = 'Finding' : レビュー指摘事項の作成、更新、削除へのリクエストが正常に満たされた場合、イベントがスローされます。
各メッセージには、リクエスト アクションの種類を表す文字列プロパティ action も含まれます。 action = 'Create' action = 'Update' action = 'Delete'
メッセージは、メッセージ ボディとして JSON を持つ TextMessage タイプです。例: Code Block |
---|
language | text |
---|
title | BuildReview イベント スキーマ |
---|
| {
"type": "Review",
"action": "Create",
"entity": {
"id": "36",
"baselineBuild": {
"id": "BaselineBuild"
},
"targetBuild": {
"id": "TargetBuild"
},
"name": "ReviewName",
"author": "admin",
"metadata": {}
},
"activity": {
"author": "admin",
"date": "2016-12-09T18:50:11Z",
"changes": {
"name": "ReviewName"
}
}
} |
メッセージ ボディの JSON は、対応する /v1.3/buildReviews または /v1.3/buildReviews/{id}/findings REST エンドポイントへの正常リクエストで返される JSON と同じです。 REST 認証の提供方法を含め、REST エンドポイントの詳細については 「REST API」 「Using DTP REST APIs」 を参照してください。 |
DataCollector | Data Collector から作成したイベントについてサブスクライバに通知します。対応する JMSType に合わせて 3 種類のメッセージが存在します。 JMSType = ReceivedEvent : Data Collector がレポートを受け取って処理を開始するときに、イベントがスローされます。JMSType = ProcessedEvent : Data Collector がレポートの処理を正常に完了したときに、イベントがスローされます。JMSType = ErroredEvent : Data Collector がレポートの処理中にエラーに遭遇したときに、イベントがスローされます。
JSON メッセージのボディは以下のスキーマを使用します。 Code Block |
---|
language | text |
---|
title | DataCollector イベント スキーマ |
---|
| {
"reportFileName":"javaStaticAnalysisRun007.xml",
"eventTime":"2014-07-10 16:31:04",
"status":"ReceivedEvent"
} |
ProcessedEvent の場合、JSON のbody にはさらに以下の情報が含まれます。
Code Block |
---|
| {
"reportFileName": "em.xml",
"eventTime": "2014-09-30 15:20:06",
"status": "ProcessedEvent",
"fixedViolationsCount": 0,
"newViolationsCount": 391,
"suppressedViolationsCount": 48,
"violationsCount": 439,
"runConfigurationId": "33",
"runId": "580",
"testConfig": {
"name": "Recommended Rules",
"machine": "embuilder1.parasoft.com",
"user": "jenkins",
"pseudoUrl": "builtin://Recommended Rules"
},
"resultsSession": {
"id": "1412929102566",
"project": "Environment Manager",
"time": "2014-09-30T14:44:46-07:00",
"hasVoils":"true",
"tag": "Recommended Rules",
"toolId": "jtest",
"toolVer": "10.0.6.201406011700",
"toolName": "Parasoft Jtest",
"machine": "embuilder1.parasoft.com",
"lang": "en_US",
"climode": "true"
}
} |
|
PrioritizationView | このトピックは DTP 5.1.4 以降では非推奨です。現在このトピックを使用している場合、テスト エクスプローラーでの変更も通知する AnalysisMetdata トピックに切り替えることを強く推奨します。AnalysisMetdata トピックでは、JMStype = "violations" を使って、違反エクスプローラー (DTP 5.1.3 以前の優先度ビュー) からのメッセージをフィルタリングすることができます。詳細については 「AnalysisMetadata 」を参照してください。 このトピックは、違反エクスプローラーで加えられた、違反優先度に対する変更についてサブスクライバに通知します。メッセージ タイプは 1 種類のみなので、JMSType は必要ありません。メッセージは、違反を変更した 1 つのイベントに相当します。このメッセージの JSON は、イベント識別子と、変更された違反すべての ID を持ちます。 Code Block |
---|
language | xml |
---|
title | PrioritizationView イベント スキーマ |
---|
| {
"eventId":"102",
"violationIds": ["8f522ef1-18bf-38a9-a9ce-dfaa3c91f4f6"],
} |
eventId は API エンドポイントで使用できます。
/grs/api/v1/staticAnalysisViolations/<violationId>/prioritization/events
違反の変更履歴の配列が返されます。eventId を使って、変更があった物を相互に関連付けることができます。 |
Project | このトピックは、プロジェクトに対する変更についてサブスクライバに通知します。プロジェクトが作成、更新、削除されるたびに、DTP はイベントをパブリッシュします。メッセージは、メッセージ ボディとして JSON を持つ TextMessage タイプです。例: Code Block |
---|
language | text |
---|
title | PrioritizationView イベント スキーマ |
---|
| {
"eventIdeventType":"102CREATED",
"violationIdsproject": ["8f522ef1-18bf-38a9-a9ce-dfaa3c91f4f6"],"id":"27","name":"Parabank"]
} |
JMSType の値は以下のとおりです: 各メッセージには文字列プロパティ projectName もあります。これはプロジェクトの名前です。この文字列プロパティと JMSType を使ってメッセージ セレクタを作成できます。以下の例では、メッセージ セレクタはプロジェクトの作成を検出します。 JMSType = 'CREATED'
以下の例では、メッセージ セレクタは Parabank プロジェクトだけが更新されたことを検出します。 JMSType = 'UPDATED' and projectName = 'Parabank'
Anchor |
---|
| extending-project-event-with-rest-api |
---|
| extending-project-event-with-rest-api |
---|
| REST API を使った Project イベント トピックの拡張/v1/projects/{id} REST エンドポイントを使用すると、プロジェクトが作成または更新された後に、プロジェクトの状態やその終了日など、プロジェクトについての追加情報を取得することができます。
たとえば、上記の例の更新された "Parabank" プロジェクトのプロジェクト ID が 27 だとします。この URL に GET を適用して、適切なホストとポートを置き換えることができます。 https:// yourserver<YOURSERVER>:8443/grs/api/v1/projects/27
REST 認証の提供方法を含め、REST エンドポイントの詳細については 「Using DTP REST APIAPIs」 を参照してください。 |
トピックのパブリッシュの認証
認証は、トピックへのサブスクリプションには不要ですが、トピックへのパブリッシュには必要です。EventsConfig.xml または events-beanseventsbeans.xml 構成ファイルに変更を加えたら、変更を有効にするために、必ず DTP Server を再起動しなければなりません。
AuthenticationTopic の有効化
<DTP_DATA_DIR>/conf
ディレクトリにある EventsConfig.xml 構成ファイルを開きます。<topic-authentication>
要素を探し、enabled 属性を true に設定します (true
がデフォルトです) 。認証を無効にするには、enabled 属性を false
に設定します。ユーザー名とパスワードの変更は推奨しません。 - DTP Server を再起動します (「Starting DTP Applications」 を参照)。
...
認証を有効化した後に、特定のトピックについて認証を不要にすることができます。
- [DTP
<DTP_
HOME]INSTALL>/tomcat/webapps/grs/WEB-INF/springs/
ディレクトリにある events-beans.xml を開きます。 destinationAuthenticationManager
Bean の nonAuthenticatedTopics
プロパティの list にトピック名を追加します。
Code Block |
---|
<bean id="destinationAuthenticationManager">
<property name="nonAuthenticatedTopics">
<list>
<value>MyTopicName</value>
</list>
</property>
</bean> |
DTP Server を再起動します (「Starting DTP Applications」 を参照)。
...