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

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

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

RepositoryService.searchObjectsIterative介绍

暂无

代码示例

代码示例来源:origin: Evolveum/midpoint

/**
 * Used to search using model or any similar higher-level interface. Defaults to search using repository.
 */
protected <O extends ObjectType> void searchIterative(Class<O> type, ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> searchOptions, ResultHandler<O> resultHandler, Task coordinatorTask, OperationResult opResult)
    throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException {
  repositoryService.searchObjectsIterative(type, query, resultHandler, searchOptions, true, opResult);
}

代码示例来源:origin: Evolveum/midpoint

@Override
public <O extends ObjectType> void searchIterative(Class<O> type, ObjectQuery query,
    Collection<SelectorOptions<GetOperationOptions>> options, ResultHandler<O> handler, Task task,
    OperationResult parentResult)
    throws SchemaException {
  cacheRepositoryService.searchObjectsIterative(type, query, handler, options, true, parentResult);
}

代码示例来源:origin: Evolveum/midpoint

public <O extends ObjectType> void searchIterative(Class<O> type, ObjectQuery query,
    Collection<SelectorOptions<GetOperationOptions>> options, ResultHandler<O> handler, Object task,
    OperationResult parentResult)
    throws SchemaException {
  cacheRepositoryService.searchObjectsIterative(type, query, handler, options, true, parentResult);
}

代码示例来源:origin: Evolveum/midpoint

/**
 * Note: this may return dead shadow.
 */
private List<PrismObject<ShadowType>> findConflictingShadowsInRepo(ObjectQuery query, Task task, OperationResult parentResult)
    throws SchemaException {
  final List<PrismObject<ShadowType>> foundAccount = new ArrayList<>();
  
  repositoryService.searchObjectsIterative(ShadowType.class, query, (object,result) -> foundAccount.add(object), null, true, parentResult);
  
  return foundAccount;
}

代码示例来源:origin: Evolveum/midpoint

@Override
public <O extends ObjectType> void searchIterative(Class<O> type, ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> options, ResultHandler<O> handler, Task task, OperationResult parentResult)
    throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException {
  if (ObjectTypes.isClassManagedByProvisioning(type)) {
    provisioning.searchObjectsIterative(type, query, options, handler, task, parentResult);
  } else {
    cacheRepositoryService.searchObjectsIterative(type, query, handler, options, true, parentResult);		// TODO pull up into resolver interface
  }
}

代码示例来源:origin: Evolveum/midpoint

public SearchResultMetadata searchObjectsIterativeRepository(
    ProvisioningContext ctx, ObjectQuery query,
    Collection<SelectorOptions<GetOperationOptions>> options,
    com.evolveum.midpoint.schema.ResultHandler<ShadowType> repoHandler, OperationResult parentResult) throws SchemaException, ConfigurationException, ObjectNotFoundException, CommunicationException, ExpressionEvaluationException {
  
  ObjectQuery repoQuery = query.clone();
  processQueryMatchingRules(repoQuery, ctx.getObjectClassDefinition());
  
  return repositoryService.searchObjectsIterative(ShadowType.class, repoQuery, repoHandler, options, true, parentResult);
}

代码示例来源:origin: Evolveum/midpoint

@Test
public void test() throws Exception {
  OperationResult result = new OperationResult("asdf");
  final List<PrismObject> objects = new ArrayList<>();
  ResultHandler<ObjectType> handler = new ResultHandler<ObjectType>() {
    @Override
    public boolean handle(PrismObject<ObjectType> object, OperationResult parentResult) {
      objects.add(object);
      return true;
    }
  };
  repositoryService.searchObjectsIterative(ObjectType.class, null, handler, null, true, result);
  assertTrue(!objects.isEmpty());
}

代码示例来源:origin: Evolveum/midpoint

protected void assertShadows(int expected, OperationResult result) throws SchemaException {
  int actual = repositoryService.countObjects(ShadowType.class, null, null, result);
  if (expected != actual) {
    if (actual > 20) {
      AssertJUnit.fail("Unexpected number of (repository) shadows. Expected " + expected + " but was " + actual + " (too many to display)");
    }
    ResultHandler<ShadowType> handler = (object, parentResult) -> {
      display("found shadow", object);
      return true;
    };
    repositoryService.searchObjectsIterative(ShadowType.class, null, handler, null, true, result);
    AssertJUnit.fail("Unexpected number of (repository) shadows. Expected " + expected + " but was " + actual);
  }
}

代码示例来源:origin: Evolveum/midpoint

@Test
public void iterateSet() throws Exception {
  OperationResult result = new OperationResult("search set");
  final List<PrismObject> objects = new ArrayList<>();
  ResultHandler handler = (object, parentResult) -> {
    objects.add(object);
    return true;
  };
  repositoryService.searchObjectsIterative(UserType.class, null, handler, null, false, result);
  result.recomputeStatus();
  assertTrue(result.isSuccess());
  assertEquals(4, objects.size());
}

代码示例来源:origin: Evolveum/midpoint

@Test
public void test100SimpleSequentialIteration() throws Exception {
  OperationResult result = new OperationResult("test100SimpleSequentialIteration");
  final List<PrismObject<UserType>> objects = new ArrayList<>();
  ResultHandler<UserType> handler = (object, parentResult) -> {
    objects.add(object);
    return true;
  };
  repositoryService.searchObjectsIterative(UserType.class, null, handler, null, true, result);
  result.recomputeStatus();
  assertTrue(result.isSuccess());
  assertObjects(objects, COUNT);
}

代码示例来源:origin: Evolveum/midpoint

@Test
public void test105SimpleNonSequentialIteration() throws Exception {
  OperationResult result = new OperationResult("test105SimpleNonSequentialIteration");
  final List<PrismObject<UserType>> objects = new ArrayList<>();
  ResultHandler<UserType> handler = (object, parentResult) -> {
    objects.add(object);
    return true;
  };
  repositoryService.searchObjectsIterative(UserType.class, null, handler, null, false, result);
  result.recomputeStatus();
  assertTrue(result.isSuccess());
  assertObjects(objects, COUNT);
}

代码示例来源:origin: Evolveum/midpoint

@Override
public <T extends ObjectType> SearchResultMetadata searchObjectsIterative(Class<T> type, ObjectQuery query,
    final ResultHandler<T> handler, final Collection<SelectorOptions<GetOperationOptions>> options,
    boolean strictlySequential, OperationResult parentResult) throws SchemaException {
  // TODO use cached query result if applicable
  log("Cache: PASS searchObjectsIterative ({})", type.getSimpleName());
  final Cache cache = getCache();
  ResultHandler<T> myHandler = (object, parentResult1) -> {
    cacheObject(cache, object, GetOperationOptions.isReadOnly(SelectorOptions.findRootOptions(options)));
    return handler.handle(object, parentResult1);
  };
  Long startTime = repoOpStart();
  try {
    return repositoryService.searchObjectsIterative(type, query, myHandler, options, strictlySequential, parentResult);
  } finally {
    repoOpEnd(startTime);
  }
}

代码示例来源:origin: Evolveum/midpoint

protected void assertShadows(int expectedCount) throws SchemaException {
  OperationResult result = new OperationResult(TestOpenDj.class.getName() + ".assertShadows");
  int actualCount = repositoryService.countObjects(ShadowType.class, null, null, result);
  if (actualCount != expectedCount) {
    ResultHandler<ShadowType> handler = (object, parentResult) -> {
      display("Repo shadow", object);
      return true;
    };
    repositoryService.searchObjectsIterative(ShadowType.class, null, handler, null, true, result);
    assertEquals("Unexpected number of shadows in the repo", expectedCount, actualCount);
  }
}

代码示例来源:origin: Evolveum/midpoint

@Test
public void test104SimpleSequentialIterationWithCustomPagingSmall() throws Exception {
  OperationResult result = new OperationResult("test104SimpleSequentialIterationWithCustomPagingSmall");
  final List<PrismObject<UserType>> objects = new ArrayList<>();
  ResultHandler<UserType> handler = (object, parentResult) -> {
    objects.add(object);
    return true;
  };
  ObjectQuery query = prismContext.queryFactory().createQuery(prismContext.queryFactory().createPaging(1, 200));
  repositoryService.searchObjectsIterative(UserType.class, query, handler, null, true, result);
  result.recomputeStatus();
  assertTrue(result.isSuccess());
  assertObjects(objects, 200);
}

代码示例来源:origin: Evolveum/midpoint

@Test
public void test102SimpleSequentialIterationWithMaxSize() throws Exception {
  OperationResult result = new OperationResult("test102SimpleSequentialIterationWithMaxSize");
  final List<PrismObject<UserType>> objects = new ArrayList<>();
  ResultHandler<UserType> handler = (object, parentResult) -> {
    objects.add(object);
    return true;
  };
  ObjectQuery query = prismContext.queryFactory().createQuery(prismContext.queryFactory().createPaging(null, 70));
  repositoryService.searchObjectsIterative(UserType.class, query, handler, null, true, result);
  result.recomputeStatus();
  assertTrue(result.isSuccess());
  assertObjects(objects, 70);
}

代码示例来源:origin: Evolveum/midpoint

@Test
public void test103SimpleSequentialIterationWithCustomPagingLarge() throws Exception {
  OperationResult result = new OperationResult("test103SimpleSequentialIterationWithCustomPagingLarge");
  final List<PrismObject<UserType>> objects = new ArrayList<>();
  ResultHandler<UserType> handler = (object, parentResult) -> {
    objects.add(object);
    return true;
  };
  ObjectQuery query = prismContext.queryFactory().createQuery(prismContext.queryFactory().createPaging(1, null));
  repositoryService.searchObjectsIterative(UserType.class, query, handler, null, true, result);
  result.recomputeStatus();
  assertTrue(result.isSuccess());
  assertObjects(objects, COUNT - 1);
}

代码示例来源:origin: Evolveum/midpoint

@Test
public void test110DeleteAll() throws Exception {
  OperationResult result = new OperationResult("test110DeleteAll");
  final List<PrismObject<UserType>> objects = new ArrayList<>();
  ResultHandler<UserType> handler = (object, parentResult) -> {
    objects.add(object);
    try {
      repositoryService.deleteObject(UserType.class, object.getOid(), parentResult);
    } catch (ObjectNotFoundException e) {
      throw new SystemException(e);
    }
    return true;
  };
  repositoryService.searchObjectsIterative(UserType.class, null, handler, null, true, result);
  result.recomputeStatus();
  assertTrue(result.isSuccess());
  assertObjects(objects, COUNT);
  int count = repositoryService.countObjects(UserType.class, null, null, result);
  assertEquals("Wrong # of objects after operation", 0, count);
}

代码示例来源:origin: Evolveum/midpoint

@Test
public void iterateEmptySet() throws Exception {
  OperationResult result = new OperationResult("search empty");
  ResultHandler handler = (object, parentResult) -> {
    fail();
    return false;
  };
  ObjectQuery query = prismContext.queryFor(UserType.class)
      .item(UserType.F_NAME).eqPoly("asdf", "asdf").matchingStrict()
      .build();
  repositoryService.searchObjectsIterative(UserType.class, query, handler, null, false, result);
  result.recomputeStatus();
  assertTrue(result.isSuccess());
}

代码示例来源:origin: Evolveum/midpoint

@Override
protected boolean handleObject(PrismObject<ResourceType> resource, Task workerTask, OperationResult taskResult)
    throws CommonException {
  
  LOGGER.trace("Propagating provisioning operations on {}", resource);
  ObjectQuery query = resource.getPrismContext().queryFactory().createQuery();
  ObjectFilter filter = resource.getPrismContext().queryFor(ShadowType.class)
      .item(ShadowType.F_RESOURCE_REF).ref(resource.getOid())
      .and()
      .exists(ShadowType.F_PENDING_OPERATION)
    .buildFilter();
  query.setFilter(filter);
  
  ResultHandler<ShadowType> handler = 
      (shadow, result) -> {
        propagateShadowOperations(resource, shadow, workerTask, result);
        return true;
      };
  
  repositoryService.searchObjectsIterative(ShadowType.class, query, handler, null, true, taskResult);
  
  LOGGER.trace("Propagation of {} done", resource);
  
  return true;
}

代码示例来源:origin: Evolveum/midpoint

private void iterateGeneral(int offset, int size, int batch, final String... names) throws Exception {
  OperationResult result = new OperationResult("search general");
  final List<PrismObject> objects = new ArrayList<>();
  ResultHandler handler = new ResultHandler() {
    int index = 0;
    @Override
    public boolean handle(PrismObject object, OperationResult parentResult) {
      objects.add(object);
      assertEquals("Incorrect object name was read", names[index++], object.asObjectable().getName().getOrig());
      return true;
    }
  };
  SqlRepositoryConfiguration config = ((SqlRepositoryServiceImpl) repositoryService).getConfiguration();
  int oldbatch = config.getIterativeSearchByPagingBatchSize();
  config.setIterativeSearchByPagingBatchSize(batch);
  LOGGER.trace(">>>>>> iterateGeneral: offset = " + offset + ", size = " + size + ", batch = " + batch + " <<<<<<");
  ObjectQuery query = prismContext.queryFactory().createQuery();
  query.setPaging(prismContext.queryFactory().createPaging(offset, size, ObjectType.F_NAME, OrderDirection.ASCENDING));
  repositoryService.searchObjectsIterative(UserType.class, query, handler, null, false, result);
  result.recomputeStatus();
  config.setIterativeSearchByPagingBatchSize(oldbatch);
  assertTrue(result.isSuccess());
  assertEquals(size, objects.size());
}

相关文章

微信公众号

最新文章

更多