When setting the two flags isCmmnEnabled() and isDmnEnabled() in ProcessEngineConfiguration this not handled at all places.
org.camunda.bpm.engine.rest.impl.CaseDefinitionRestServiceImpl.getCaseDefinitionsCount() should be
@Override
public CountResultDto getCaseDefinitionsCount(final UriInfo uriInfo) {
CountResultDto result = null;
final ProcessEngine engine = getProcessEngine();
final ProcessEngineConfiguration processEngineConfiguration = engine.getProcessEngineConfiguration();
if (!(processEngineConfiguration instanceof ProcessEngineConfigurationImpl)
|| ((ProcessEngineConfigurationImpl) processEngineConfiguration).isCmmnEnabled()) {
final CaseDefinitionQueryDto queryDto = new CaseDefinitionQueryDto(getObjectMapper(), uriInfo.getQueryParameters());
final CaseDefinitionQuery query = queryDto.toQuery(engine);
final long count = query.count();
result = new CountResultDto();
result.setCount(count);
}
return result;
}
org.camunda.bpm.engine.rest.impl.DecisionDefinitionRestServiceImpl.getDecisionDefinitionsCount() should be
@Override
public CountResultDto getDecisionDefinitionsCount(final UriInfo uriInfo) {
CountResultDto result = null;
final ProcessEngine engine = getProcessEngine();
final ProcessEngineConfiguration processEngineConfiguration = engine.getProcessEngineConfiguration();
if (!(processEngineConfiguration instanceof ProcessEngineConfigurationImpl)
|| ((ProcessEngineConfigurationImpl) processEngineConfiguration).isDmnEnabled()) {
final DecisionDefinitionQueryDto queryDto = new DecisionDefinitionQueryDto(getObjectMapper(), uriInfo.getQueryParameters());
final DecisionDefinitionQuery query = queryDto.toQuery(engine);
final long count = query.count();
result = new CountResultDto();
result.setCount(count);
}
return result;
}
Otherwise e.g showing the dashboard of Cockpit creates exceptions.
And org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl should create decisionService and caseService only if the flags are true.