@Override public List<ProcessInstance> getProcessInstances(String containerId, String caseId, List<Integer> status, Integer page, Integer pageSize, String sort, boolean sortOrder) { ProcessInstanceList list = null; if( config.isRest() ) { Map<String, Object> valuesMap = new HashMap<String, Object>(); valuesMap.put(CONTAINER_ID, containerId); valuesMap.put(CASE_ID, caseId); String queryString = getPagingQueryString("", page, pageSize); queryString = getAdditionalParams(queryString, "status", status); queryString = getSortingQueryString(queryString, sort, sortOrder); list = makeHttpGetRequestAndCreateCustomResponse( build(loadBalancer.getUrl(), CASE_URI + "/" + CASE_PROCESS_INSTANCES_GET_URI, valuesMap) + queryString, ProcessInstanceList.class); } else { CommandScript script = new CommandScript( Collections.singletonList( (KieServerCommand) new DescriptorCommand("CaseQueryService", "getProcessInstancesForCase", new Object[]{containerId, caseId, safeList(status), page, pageSize, sort, sortOrder})) ); ServiceResponse<ProcessInstanceList> response = (ServiceResponse<ProcessInstanceList>) executeJmsCommand( script, DescriptorCommand.class.getName(), KieServerConstants.CAPABILITY_CASE ).getResponses().get(0); throwExceptionOnFailure(response); if (shouldReturnWithNullResponse(response)) { return null; } list = response.getResult(); } if (list != null) { return list.getItems(); } return Collections.emptyList(); }
@Test public void testGetProcessInstancesUseOfAsyncResponseHandlerWithMarshaller() throws Exception { ResponseCallback callback = new BlockingResponseCallback(createMarshaller()); testGetProcessInstancesResponseHandler(new AsyncResponseHandler(callback)); // now let's check if response has arrived ProcessInstanceList processInstanceList = callback.get(ProcessInstanceList.class); assertThat(processInstanceList).isNotNull(); assertThat(processInstanceList.getItems()).isNotNull().hasSize(1); }
@Override public List<ProcessInstance> findProcessInstancesWithFilters(String queryName, ProcessInstanceQueryFilterSpec filterSpec, Integer page, Integer pageSize) { String mapper = "ProcessInstances"; ProcessInstanceList result = null; if (config.isRest()) { Map<String, Object> valuesMap = new HashMap<String, Object>(); valuesMap.put(QUERY_NAME, queryName); String queryString = getPagingQueryString("?mapper=" + mapper, page, pageSize); result = makeHttpPostRequestAndCreateCustomResponse(build(loadBalancer.getUrl(), QUERY_DEF_URI + "/" + RUN_FILTERED_QUERY_DEF_POST_URI, valuesMap) + queryString, filterSpec, ProcessInstanceList.class); } else { CommandScript script = new CommandScript(Collections.singletonList((KieServerCommand) new DescriptorCommand("QueryDataService", "queryFiltered", serialize(filterSpec), marshaller.getFormat().getType(), new Object[]{queryName, mapper, page, pageSize}))); ServiceResponse<ProcessInstanceList> response = (ServiceResponse<ProcessInstanceList>) executeJmsCommand(script, DescriptorCommand.class.getName(), "BPM").getResponses().get(0); throwExceptionOnFailure(response); if (shouldReturnWithNullResponse(response)) { return null; } result = response.getResult(); } if (result != null) { return result.getItems(); } else { return Collections.emptyList(); } }