Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH
* under one or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information regarding copyright
* ownership. Camunda licenses this file to you under the Apache License,
* Version 2.0; you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.camunda.bpm.engine.rest.impl.optimize;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.camunda.bpm.engine.history.HistoricActivityInstance;
import org.camunda.bpm.engine.history.HistoricDecisionInstance;
import org.camunda.bpm.engine.history.HistoricIncident;
import org.camunda.bpm.engine.history.HistoricProcessInstance;
import org.camunda.bpm.engine.history.HistoricTaskInstance;
import org.camunda.bpm.engine.history.HistoricVariableUpdate;
import org.camunda.bpm.engine.history.UserOperationLogEntry;
import org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl;
import org.camunda.bpm.engine.impl.persistence.entity.HistoricIncidentEntity;
import org.camunda.bpm.engine.impl.persistence.entity.optimize.OptimizeHistoricIdentityLinkLogEntity;
import org.camunda.bpm.engine.rest.dto.converter.DateConverter;
import org.camunda.bpm.engine.rest.dto.history.HistoricDecisionInstanceDto;
import org.camunda.bpm.engine.rest.dto.history.HistoricIncidentDto;
import org.camunda.bpm.engine.rest.dto.history.HistoricProcessInstanceDto;
import org.camunda.bpm.engine.rest.dto.history.HistoricTaskInstanceDto;
import org.camunda.bpm.engine.rest.dto.history.UserOperationLogEntryDto;
import org.camunda.bpm.engine.rest.dto.history.optimize.OptimizeHistoricActivityInstanceDto;
import org.camunda.bpm.engine.rest.dto.history.optimize.OptimizeHistoricIdentityLinkLogDto;
import org.camunda.bpm.engine.rest.dto.history.optimize.OptimizeHistoricVariableUpdateDto;
import org.camunda.bpm.engine.rest.impl.AbstractRestProcessEngineAware;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Produces(MediaType.APPLICATION_JSON)
public class OptimizeRestService extends AbstractRestProcessEngineAware {
public static final String PATH = "/optimize";
private final DateConverter dateConverter;
public OptimizeRestService(String engineName, ObjectMapper objectMapper) {
super(engineName, objectMapper);
dateConverter = new DateConverter();
dateConverter.setObjectMapper(objectMapper);
}
@GET
@Path("/activity-instance/completed")
public List getCompletedHistoricActivityInstances(@QueryParam("finishedAfter") String finishedAfterAsString,
@QueryParam("finishedAt") String finishedAtAsString,
@QueryParam("maxResults") int maxResults) {
Date finishedAfter = dateConverter.convertQueryParameterToType(finishedAfterAsString);
Date finishedAt = dateConverter.convertQueryParameterToType(finishedAtAsString);
maxResults = ensureValidMaxResults(maxResults);
ProcessEngineConfigurationImpl config =
(ProcessEngineConfigurationImpl) getProcessEngine().getProcessEngineConfiguration();
List historicActivityInstances =
config.getOptimizeService().getCompletedHistoricActivityInstances(finishedAfter, finishedAt, maxResults);
List result = new ArrayList<>();
for (HistoricActivityInstance instance : historicActivityInstances) {
OptimizeHistoricActivityInstanceDto dto = OptimizeHistoricActivityInstanceDto.fromHistoricActivityInstance(instance);
result.add(dto);
}
return result;
}
@GET
@Path("/activity-instance/running")
public List getRunningHistoricActivityInstances(@QueryParam("startedAfter") String startedAfterAsString,
@QueryParam("startedAt") String startedAtAsString,
@QueryParam("maxResults") int maxResults) {
Date startedAfter = dateConverter.convertQueryParameterToType(startedAfterAsString);
Date startedAt = dateConverter.convertQueryParameterToType(startedAtAsString);
maxResults = ensureValidMaxResults(maxResults);
ProcessEngineConfigurationImpl config =
(ProcessEngineConfigurationImpl) getProcessEngine().getProcessEngineConfiguration();
List historicActivityInstances =
config.getOptimizeService().getRunningHistoricActivityInstances(startedAfter, startedAt, maxResults);
List result = new ArrayList<>();
for (HistoricActivityInstance instance : historicActivityInstances) {
OptimizeHistoricActivityInstanceDto dto = OptimizeHistoricActivityInstanceDto.fromHistoricActivityInstance(instance);
result.add(dto);
}
return result;
}
@GET
@Path("/task-instance/completed")
public List getCompletedHistoricTaskInstances(@QueryParam("finishedAfter") String finishedAfterAsString,
@QueryParam("finishedAt") String finishedAtAsString,
@QueryParam("maxResults") int maxResults) {
Date finishedAfter = dateConverter.convertQueryParameterToType(finishedAfterAsString);
Date finishedAt = dateConverter.convertQueryParameterToType(finishedAtAsString);
maxResults = ensureValidMaxResults(maxResults);
ProcessEngineConfigurationImpl config =
(ProcessEngineConfigurationImpl) getProcessEngine().getProcessEngineConfiguration();
List historicTaskInstances =
config.getOptimizeService().getCompletedHistoricTaskInstances(finishedAfter, finishedAt, maxResults);
List result = new ArrayList<>();
for (HistoricTaskInstance instance : historicTaskInstances) {
HistoricTaskInstanceDto dto = HistoricTaskInstanceDto.fromHistoricTaskInstance(instance);
result.add(dto);
}
return result;
}
@GET
@Path("/task-instance/running")
public List getRunningHistoricTaskInstances(@QueryParam("startedAfter") String startedAfterAsString,
@QueryParam("startedAt") String startedAtAsString,
@QueryParam("maxResults") int maxResults) {
Date startedAfter = dateConverter.convertQueryParameterToType(startedAfterAsString);
Date startedAt = dateConverter.convertQueryParameterToType(startedAtAsString);
maxResults = ensureValidMaxResults(maxResults);
ProcessEngineConfigurationImpl config =
(ProcessEngineConfigurationImpl) getProcessEngine().getProcessEngineConfiguration();
List historicTaskInstances =
config.getOptimizeService().getRunningHistoricTaskInstances(startedAfter, startedAt, maxResults);
List result = new ArrayList<>();
for (HistoricTaskInstance instance : historicTaskInstances) {
HistoricTaskInstanceDto dto = HistoricTaskInstanceDto.fromHistoricTaskInstance(instance);
result.add(dto);
}
return result;
}
@GET
@Path("/user-operation")
public List getHistoricUserOperationLogs(@QueryParam("occurredAfter") String occurredAfterAsString,
@QueryParam("occurredAt") String occurredAtAsString,
@QueryParam("maxResults") int maxResults) {
Date occurredAfter = dateConverter.convertQueryParameterToType(occurredAfterAsString);
Date occurredAt = dateConverter.convertQueryParameterToType(occurredAtAsString);
maxResults = ensureValidMaxResults(maxResults);
ProcessEngineConfigurationImpl config =
(ProcessEngineConfigurationImpl) getProcessEngine().getProcessEngineConfiguration();
List operationLogEntries =
config.getOptimizeService().getHistoricUserOperationLogs(occurredAfter, occurredAt, maxResults);
List result = new ArrayList<>();
for (UserOperationLogEntry logEntry : operationLogEntries) {
UserOperationLogEntryDto dto = UserOperationLogEntryDto.map(logEntry);
result.add(dto);
}
return result;
}
@GET
@Path("/identity-link-log")
public List getHistoricIdentityLinkLogs(@QueryParam("occurredAfter") String occurredAfterAsString,
@QueryParam("occurredAt") String occurredAtAsString,
@QueryParam("maxResults") int maxResults) {
Date occurredAfter = dateConverter.convertQueryParameterToType(occurredAfterAsString);
Date occurredAt = dateConverter.convertQueryParameterToType(occurredAtAsString);
maxResults = ensureValidMaxResults(maxResults);
ProcessEngineConfigurationImpl config =
(ProcessEngineConfigurationImpl) getProcessEngine().getProcessEngineConfiguration();
List operationLogEntries =
config.getOptimizeService().getHistoricIdentityLinkLogs(occurredAfter, occurredAt, maxResults);
List result = new ArrayList<>();
for (OptimizeHistoricIdentityLinkLogEntity logEntry : operationLogEntries) {
OptimizeHistoricIdentityLinkLogDto dto = OptimizeHistoricIdentityLinkLogDto.fromHistoricIdentityLink(logEntry);
result.add(dto);
}
return result;
}
@GET
@Path("/process-instance/completed")
public List getCompletedHistoricProcessInstances(@QueryParam("finishedAfter") String finishedAfterAsString,
@QueryParam("finishedAt") String finishedAtAsString,
@QueryParam("maxResults") int maxResults) {
Date finishedAfter = dateConverter.convertQueryParameterToType(finishedAfterAsString);
Date finishedAt = dateConverter.convertQueryParameterToType(finishedAtAsString);
maxResults = ensureValidMaxResults(maxResults);
ProcessEngineConfigurationImpl config =
(ProcessEngineConfigurationImpl) getProcessEngine().getProcessEngineConfiguration();
List historicProcessInstances =
config.getOptimizeService().getCompletedHistoricProcessInstances(finishedAfter, finishedAt, maxResults);
List result = new ArrayList<>();
for (HistoricProcessInstance instance : historicProcessInstances) {
HistoricProcessInstanceDto dto = HistoricProcessInstanceDto.fromHistoricProcessInstance(instance);
result.add(dto);
}
return result;
}
@GET
@Path("/process-instance/running")
public List getRunningHistoricProcessInstances(@QueryParam("startedAfter") String startedAfterAsString,
@QueryParam("startedAt") String startedAtAsString,
@QueryParam("maxResults") int maxResults) {
Date startedAfter = dateConverter.convertQueryParameterToType(startedAfterAsString);
Date startedAt = dateConverter.convertQueryParameterToType(startedAtAsString);
maxResults = ensureValidMaxResults(maxResults);
ProcessEngineConfigurationImpl config =
(ProcessEngineConfigurationImpl) getProcessEngine().getProcessEngineConfiguration();
List historicProcessInstances =
config.getOptimizeService().getRunningHistoricProcessInstances(startedAfter, startedAt, maxResults);
List result = new ArrayList<>();
for (HistoricProcessInstance instance : historicProcessInstances) {
HistoricProcessInstanceDto dto = HistoricProcessInstanceDto.fromHistoricProcessInstance(instance);
result.add(dto);
}
return result;
}
@GET
@Path("/variable-update")
public List getHistoricVariableUpdates(@QueryParam("occurredAfter") String occurredAfterAsString,
@QueryParam("occurredAt") String occurredAtAsString,
@QueryParam("excludeObjectValues") boolean excludeObjectValues,
@QueryParam("maxResults") int maxResults) {
Date occurredAfter = dateConverter.convertQueryParameterToType(occurredAfterAsString);
Date occurredAt = dateConverter.convertQueryParameterToType(occurredAtAsString);
maxResults = ensureValidMaxResults(maxResults);
ProcessEngineConfigurationImpl config =
(ProcessEngineConfigurationImpl) getProcessEngine().getProcessEngineConfiguration();
List historicVariableUpdates =
config.getOptimizeService().getHistoricVariableUpdates(occurredAfter, occurredAt, excludeObjectValues, maxResults);
List result = new ArrayList<>();
for (HistoricVariableUpdate instance : historicVariableUpdates) {
OptimizeHistoricVariableUpdateDto dto =
OptimizeHistoricVariableUpdateDto.fromHistoricVariableUpdate(instance);
result.add(dto);
}
return result;
}
@GET
@Path("/incident/completed")
public List getCompletedHistoricIncidents(@QueryParam("finishedAfter") String finishedAfterAsString,
@QueryParam("finishedAt") String finishedAtAsString,
@QueryParam("maxResults") int maxResults) {
Date finishedAfter = dateConverter.convertQueryParameterToType(finishedAfterAsString);
Date finishedAt = dateConverter.convertQueryParameterToType(finishedAtAsString);
maxResults = ensureValidMaxResults(maxResults);
ProcessEngineConfigurationImpl config =
(ProcessEngineConfigurationImpl) getProcessEngine().getProcessEngineConfiguration();
List historicIncidents =
config.getOptimizeService().getCompletedHistoricIncidents(finishedAfter, finishedAt, maxResults);
List result = new ArrayList<>();
for (HistoricIncident instance : historicIncidents) {
HistoricIncidentDto dto = HistoricIncidentDto.fromHistoricIncident(instance);
result.add(dto);
}
return result;
}
@GET
@Path("/incident/open")
public List getOpenHistoricIncidents(@QueryParam("createdAfter") String createdAfterAsString,
@QueryParam("createdAt") String createdAtAsString,
@QueryParam("maxResults") int maxResults) {
Date createdAfter = dateConverter.convertQueryParameterToType(createdAfterAsString);
Date createdAt = dateConverter.convertQueryParameterToType(createdAtAsString);
maxResults = ensureValidMaxResults(maxResults);
ProcessEngineConfigurationImpl config =
(ProcessEngineConfigurationImpl) getProcessEngine().getProcessEngineConfiguration();
List historicIncidents =
config.getOptimizeService().getOpenHistoricIncidents(createdAfter, createdAt, maxResults);
List result = new ArrayList<>();
for (HistoricIncident instance : historicIncidents) {
HistoricIncidentDto dto = HistoricIncidentDto.fromHistoricIncident(instance);
result.add(dto);
}
return result;
}
@GET
@Path("/decision-instance")
public List getHistoricDecisionInstances(@QueryParam("evaluatedAfter") String evaluatedAfterAsString,
@QueryParam("evaluatedAt") String evaluatedAtAsString,
@QueryParam("maxResults") int maxResults) {
Date evaluatedAfter = dateConverter.convertQueryParameterToType(evaluatedAfterAsString);
Date evaluatedAt = dateConverter.convertQueryParameterToType(evaluatedAtAsString);
maxResults = ensureValidMaxResults(maxResults);
ProcessEngineConfigurationImpl config =
(ProcessEngineConfigurationImpl) getProcessEngine().getProcessEngineConfiguration();
List historicDecisionInstances =
config.getOptimizeService().getHistoricDecisionInstances(evaluatedAfter, evaluatedAt, maxResults);
List resultList = new ArrayList<>();
for (HistoricDecisionInstance historicDecisionInstance : historicDecisionInstances) {
HistoricDecisionInstanceDto dto =
HistoricDecisionInstanceDto.fromHistoricDecisionInstance(historicDecisionInstance);
resultList.add(dto);
}
return resultList;
}
protected int ensureValidMaxResults(int givenMaxResults) {
return givenMaxResults > 0 ? givenMaxResults : Integer.MAX_VALUE;
}
}