レジストリに送信したオブジェクトはどれでも、そのレジストリから削除することができます。対象オブジェクトの ID を、LifeCycleManager.deleteObjects メソッドの引数として使用します。
次のコードでは、指定されたキー文字列に対応するオブジェクトを削除したあと、正しいオブジェクトが削除されたことをユーザーが確認できるよう、そのキーを再度表示しています。
String id = key.getId();
Collection keys = new ArrayList();
keys.add(key);
BulkResponse response = blcm.deleteObjects(keys);
Collection exceptions = response.getException();
if (exceptions == null) {
System.out.println("Objects deleted");
Collection retKeys = response.getCollection();
Iterator keyIter = retKeys.iterator();
javax.xml.registry.infomodel.Key orgKey = null;
if (keyIter.hasNext()) {
orgKey =
(javax.xml.registry.infomodel.Key) keyIter.next();
id = orgKey.getId();
System.out.println("Object key was " + id);
}
}
Organization オブジェクトを削除しても、その Organization に属する Service オブジェクトと User オブジェクトは削除されません。これらのオブジェクトを削除する場合は、個別に削除する必要があります。
Service オブジェクトを削除すると、それに属する ServiceBinding オブジェクトも削除されます。ただし、Service オブジェクトと ServiceBinding オブジェクトを削除しても、それに関連付けられた ExtrinsicObject インスタンスとその関連リポジトリ項目は削除されません。付帯オブジェクトは個別に削除する必要があります。
Classification や ExternalIdentifier を持つオブジェクト、または Slot オブジェクトを削除すると、付帯オブジェクトも削除されます。ただし、ExternalLink オブジェクトの場合は、付帯オブジェクトは削除されません。
AuditableEvent オブジェクトは、関連付けられたオブジェクトが削除されても削除されません。レジストリの使用を続けると、これらのオブジェクトが多数蓄積されていくのがわかります。
Service Registry からオブジェクトを削除する例については、INSTALL/registry-samples/delete-object/src ディレクトリにある JAXRDelete.java を参照してください。このサンプルは、指定された一意の識別子を持つオブジェクトを削除します。