...
The new USDU acronym in v2.5.x: Universal Subject Daemon Utility. Yes we renamed it so we don't need to have people change their configs.
In a Grouper v2.5 build, we will have there is the USDU daemon that resolves subjects (in batch) and does some tasks
...
Code Block |
---|
if provisioner.<configName>.common.enabled is false, then skip provisioner.<configName>.common.subjectLink.memberFromId2 = ${subject.whatever} provisioner.<configName>.common.subjectLink.autoMemberFromId2 = true (blank defaults to true) provisioner.<configName>.common.subjectLink.memberFromId3 = ${subject.whatever} provisioner.<configName>.common.subjectLink.autoMemberFromId3 = true (blank defaults to true) provisioner.<configName>.common.subjectLink.memberToId2 = ${subject.whatever} provisioner.<configName>.common.subjectLink.autoMemberToId2 = true (blank defaults to true) provisioner.<configName>.common.subjectLink.memberToId3 = ${subject.whatever} provisioner.<configName>.common.subjectLink.autoMemberToId3 = true (blank defaults to true) |
Lock on a provisioner
Get all sync members for a provisioner, change them, and persist back
Code Block |
---|
GcGrouperSync gcGrouperSync = GcGrouperSyncDao.retrieveOrCreateByProvisionerName(null, <configName>); GcGrouperSyncJob gcGrouperSyncJob = gcGrouperSync().getGcGrouperSyncJobDao().jobRetrieveOrCreateBySyncType("usduSubjectCacheUpdater"); List<GcGrouperSyncMember> gcGruoperSyncMembersgcGrouperSyncJob.waitForRelatedJobsToFinishThenRun(true); try { // thread to update heartbeat this.setJobState(GcGrouperSyncJobState.running); this.setHeartbeat(new Timestamp(System.currentTimeMillis())); this.grouperSync.getGcGrouperSyncJobDao().internal_jobStore(this); List<GcGrouperSyncMember> gcGrouperSyncMembers = this.gcTableSync.getGcGrouperSync().getGcGrouperSyncMemberDao().memberRetrieveAll(); ...make changes... # this will persist in batch only objects that have changed since being retrieved int objectsStored = gcTableSync.getGcGrouperSync().getGcGrouperSyncDao().storeAllObjects(); } finally { GcGrouperSyncHeartbeat.endAndWaitForThread(this.gcGrouperSyncHeartbeat); gcGrouperSyncJob.assignHeartbeatAndEndJob(); } |