本文整理了Java中com.evolveum.midpoint.repo.api.RepositoryService.returnUnusedValuesToSequence
方法的一些代码示例,展示了RepositoryService.returnUnusedValuesToSequence
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RepositoryService.returnUnusedValuesToSequence
方法的具体详情如下:
包路径:com.evolveum.midpoint.repo.api.RepositoryService
类名称:RepositoryService
方法名:returnUnusedValuesToSequence
暂无
代码示例来源:origin: Evolveum/midpoint
public static <F extends ObjectType> void reclaimSequences(LensContext<F> context, RepositoryService repositoryService, Task task, OperationResult result) throws SchemaException {
if (context == null) {
return;
}
Map<String, Long> sequenceMap = context.getSequences();
LOGGER.trace("Context sequence map: {}", sequenceMap);
for (Map.Entry<String, Long> sequenceMapEntry: sequenceMap.entrySet()) {
Collection<Long> unusedValues = new ArrayList<>(1);
unusedValues.add(sequenceMapEntry.getValue());
try {
LOGGER.trace("Returning value {} to sequence {}", sequenceMapEntry.getValue(), sequenceMapEntry.getKey());
repositoryService.returnUnusedValuesToSequence(sequenceMapEntry.getKey(), unusedValues, result);
} catch (ObjectNotFoundException e) {
LOGGER.error("Cannot return unused value to sequence {}: it does not exist", sequenceMapEntry.getKey(), e);
// ... but otherwise ignore it and go on
}
}
}
代码示例来源:origin: Evolveum/midpoint
@Override
public void returnUnusedValuesToSequence(String oid, Collection<Long> unusedValues, OperationResult parentResult)
throws ObjectNotFoundException, SchemaException {
Long startTime = repoOpStart();
try {
repositoryService.returnUnusedValuesToSequence(oid, unusedValues, parentResult);
} finally {
repoOpEnd(startTime);
invalidateCacheEntry(SequenceType.class, oid);
}
}
代码示例来源:origin: Evolveum/midpoint
public void runOnce() throws SchemaException, ObjectNotFoundException {
OperationResult result = new OperationResult("run");
long value = repositoryService.advanceSequence(oid, result);
LOGGER.debug("Advance sequence returned {}", value);
values.add(value);
if (returnEach > 0) {
if (countToReturn > 0) {
countToReturn--;
} else {
countToReturn = returnEach;
int i = (int) (Math.random() * values.size());
long v = values.remove(i);
repositoryService.returnUnusedValuesToSequence(oid, Arrays.asList(v), result);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
}
value = repositoryService.advanceSequence(oid, result);
LOGGER.debug("Advance sequence returned {} (after return)", value);
values.add(value);
}
}
}
代码示例来源:origin: Evolveum/midpoint
assertEquals(3L, repositoryService.advanceSequence(oid, result));
assertEquals(4L, repositoryService.advanceSequence(oid, result));
repositoryService.returnUnusedValuesToSequence(oid, Arrays.asList(2L, 4L), result);
assertEquals(2L, repositoryService.advanceSequence(oid, result));
assertEquals(4L, repositoryService.advanceSequence(oid, result));
assertEquals(5L, repositoryService.advanceSequence(oid, result));
assertEquals(6L, repositoryService.advanceSequence(oid, result));
repositoryService.returnUnusedValuesToSequence(oid, null, result);
repositoryService.returnUnusedValuesToSequence(oid, new ArrayList<>(), result);
repositoryService.returnUnusedValuesToSequence(oid, Arrays.asList(6L), result);
assertEquals(6L, repositoryService.advanceSequence(oid, result));
repositoryService.returnUnusedValuesToSequence(oid, Arrays.asList(0L, 1L, 2L, 3L, 4L, 5L, 6L), result); // only 0-4 will be returned
assertEquals(0L, repositoryService.advanceSequence(oid, result));
assertEquals(1L, repositoryService.advanceSequence(oid, result));
内容来源于网络,如有侵权,请联系作者删除!