オブジェクトが Service Registry に発行されるたび、およびオブジェクトに何らかの変更が加えられるたびに、AuditableEvent と呼ばれる別のオブジェクトが JAXR プロバイダによって作成されます。JAXR プロバイダは、発行されたオブジェクトの監査証跡に AuditableEvent オブジェクトを追加します。監査証跡には、そのオブジェクトに関するすべてのイベントのリストが含まれています。監査証跡を取得するには、RegistryObject.getAuditTrail を呼び出します。監査証跡内の個別のイベントを取得し、そのイベントタイプを調べることもできます。JAXR では、「オブジェクトの監査証跡の取得」に示されたイベントタイプがサポートされています。
表 3–4 AuditableEvent のタイプ|
イベントタイプ |
説明 |
|---|---|
|
EVENT_TYPE_CREATED |
オブジェクトが作成され、レジストリに発行されました。 |
|
EVENT_TYPE_DELETED |
LifeCycleManager または BusinessLifeCycleManager のいずれかの削除メソッドによってオブジェクトが削除されました。 |
|
EVENT_TYPE_DEPRECATED |
LifeCycleManager.deprecateObjects メソッドによってオブジェクトが非推奨にされました。 |
|
EVENT_TYPE_UNDEPRECATED |
LifeCycleManager.unDeprecateObjects メソッドによってオブジェクトが非推奨解除されました。 |
|
EVENT_TYPE_VERSIONED |
オブジェクトの新しいバージョンが作成されました。このイベントは通常、オブジェクトのいずれかの属性が変更されたときに発生します。 |
|
EVENT_TYPE_UPDATED |
オブジェクトが更新されました。 |
|
EVENT_TYPE_APPROVED |
LifeCycleManagerImpl.approveObjects メソッドによってオブジェクトが承認されました (実装に固有)。 |
|
EVENT_TYPE_DOWNLOADED |
オブジェクトがダウンロードされました (実装に固有)。 |
|
EVENT_TYPE_RELOCATED |
オブジェクトが再配置されました (実装に固有)。 |
次のコードは、レジストリオブジェクトの監査証跡を取得し、各イベントのタイプとタイムスタンプを表示します。
Collection events = obj.getAuditTrail();
String objName = obj.getName().getValue();
Iterator eventIter = events.iterator();
while (eventIter.hasNext()) {
AuditableEventImpl ae = (AuditableEventImpl) eventIter.next();
int eType = ae.getEventType();
if (eType == AuditableEvent.EVENT_TYPE_CREATED) {
System.out.print(objName + " created ");
} else if (eType == AuditableEvent.EVENT_TYPE_DELETED) {
System.out.print(objName + " deleted ");
} else if (eType == AuditableEvent.EVENT_TYPE_DEPRECATED) {
System.out.print(objName + " deprecated ");
} else if (eType == AuditableEvent.EVENT_TYPE_UNDEPRECATED) {
System.out.print(objName + " undeprecated ");
} else if (eType == AuditableEvent.EVENT_TYPE_UPDATED) {
System.out.print(objName + " updated ");
} else if (eType == AuditableEvent.EVENT_TYPE_VERSIONED) {
System.out.print(objName + " versioned ");
} else if (eType == AuditableEventImpl.EVENT_TYPE_APPROVED) {
System.out.print(objName + " approved ");
} else if (eType == AuditableEventImpl.EVENT_TYPE_DOWNLOADED) {
System.out.print(objName + " downloaded ");
} else if (eType == AuditableEventImpl.EVENT_TYPE_RELOCATED) {
System.out.print(objName + " relocated ");
} else {
System.out.print("Unknown event for " + objName + " ");
}System.out.println(ae.getTimestamp().toString());
}
一部のサンプルには、これに似たコードを使用する showAuditTrail メソッドがあります。たとえば、<INSTALL>/registry/samples/search-name/src ディレクトリにある JAXRSearchByName.java を参照してください。
レジストリオブジェクトの状態を変更する方法については、「レジストリ内のオブジェクトの状態の変更」を参照してください。