com.evolveum.midpoint.repo.api.RepositoryService.returnUnusedValuesToSequence()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(3.5k)|赞(0)|评价(0)|浏览(60)

本文整理了Java中com.evolveum.midpoint.repo.api.RepositoryService.returnUnusedValuesToSequence方法的一些代码示例,展示了RepositoryService.returnUnusedValuesToSequence的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RepositoryService.returnUnusedValuesToSequence方法的具体详情如下:
包路径:com.evolveum.midpoint.repo.api.RepositoryService
类名称:RepositoryService
方法名:returnUnusedValuesToSequence

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));

相关文章

微信公众号

最新文章

更多