サポートされている新規エンティティー・タイプ構成を動的に追加するには、以下の手順を使用します。
始める前に
このエンティティー・タイプが既にスキーマに存在している必要があります。
このタスクについて
注: この動的呼び出しが実行されると、メモリー内の構成のみが更新されます。構成ファイルは更新されません。
- イベント・タイプ
- DYNA_CONFIG_EVENT_ADD_ENTITY_CONFIG
- 構成データ
- DYNA_CONFIG_KEY_ENTITY_TYPE (必須) - [ストリング]
- 追加するエンティティー・タイプの修飾名を指定します。
- DYNA_CONFIG_KEY_RDNS (必須) - [リスト]
- エンティティー・タイプの相対識別名 (RDN) プロパティーを指定します。
- DYNA_CONFIG_KEY_DEFAULT_PARENT (必須) - [ストリング]
- エンティティー・タイプのデフォルトの親を指定します。
- DYNA_CONFIG_KEY_ENTITY_CONFIGS - [ハッシュ・テーブル]
- ハッシュ・テーブルのキー (リポジトリー ID) を指定します。
ハッシュ・テーブルの値はデータ・オブジェクトです。例えば、リポジトリーが LDAP リポジトリーである場合、データ・オブジェクトは LdapEntityTypes です。このデータ・オブジェクトには LDAP アダプター固有の構成設定がすべて含まれています。
リポジトリーで特別の設定が不要な場合 (データベース・リポジトリーなど)、このパラメーターは必要ありません。
次にサンプル・タスクを示します。
手順
- Virtual member manager が稼働していることを確認します。
- dynamicUpdateConfig API メソッドを呼び出し、新規エンティティー構成を追加します。 例えば、PersonAccount エンティティー・タイプを追加する場合は以下のようになります。
// dynamic update
Hashtable configData = new Hashtable();
configData.put(DynamicConfigConstants.DYNA_CONFIG_KEY_REPOS_ID, "LDAP1");
configData.put(DynamicConfigConstants.DYNA_CONFIG_KEY_ENTITY_TYPE, DO_PERSON_ACCOUNT);
List rdns = new ArrayList();
rdns.add("uid");
configData.put(DynamicConfigConstants.DYNA_CONFIG_KEY_RDNS, rdns);
configData.put(DynamicConfigConstants.DYNA_CONFIG_KEY_DEFAULT_PARENT, "cn=users,dc=yourco,dc=com");
DataObject configProvider = SDOHelper.createConfigProviderDataObject();
DataObject ldapRepos = SDOHelper.createConfigRepositoryDataObject(configProvider,
ConfigConstants.CONFIG_DO_LDAP_REPOSITORY_TYPE);
DataObject ldapEntity = ldapRepos.createDataObject(ConfigConstants.CONFIG_DO_LDAP_ENTITY_TYPES);
ldapEntity.setString(ConfigConstants.CONFIG_PROP_NAME, DO_PERSON_ACCOUNT);
ldapEntity.getList(CONFIG_DO_OBJECTCLASSES).add("ePerson");
ldapEntity.getList(CONFIG_DO_OBJECTCLASSES_FOR_CREATE).add("inetOrgPerson");
ldapEntity.getList(CONFIG_DO_OBJECTCLASSES_FOR_CREATE).add("ePerson");
Hashtable entityConfigs = new Hashtable();
entityConfigs.put("LDAP1", ldapEntity);
configData.put(DynamicConfigConstants.DYNA_CONFIG_KEY_ENTITY_CONFIGS, entityConfigs);
service.dynamicUpdateConfig(DynamicConfigConstants.DYNA_CONFIG_EVENT_ADD_ENTITY_CONFIG, configData);