Skip to content

Commit

Permalink
fix(spring-boot): use non-blocking rejected jobs handler
Browse files Browse the repository at this point in the history
Related to CAM-11378, PR camunda#788
  • Loading branch information
mboskamp authored Apr 22, 2020
1 parent d15f032 commit 9474d68
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
import java.util.List;
import java.util.Optional;

import org.camunda.bpm.engine.impl.jobexecutor.CallerRunsRejectedJobsHandler;
import org.camunda.bpm.engine.impl.jobexecutor.JobExecutor;
import org.camunda.bpm.engine.impl.jobexecutor.JobHandler;
import org.camunda.bpm.engine.impl.jobexecutor.NotifyAcquisitionRejectedJobsHandler;
import org.camunda.bpm.engine.spring.SpringProcessEngineConfiguration;
import org.camunda.bpm.engine.spring.components.jobexecutor.SpringJobExecutor;
import org.camunda.bpm.spring.boot.starter.configuration.CamundaJobConfiguration;
Expand Down Expand Up @@ -103,7 +103,7 @@ public static TaskExecutor camundaTaskExecutor(CamundaBpmProperties properties)
public static JobExecutor jobExecutor(@Qualifier(CAMUNDA_TASK_EXECUTOR_QUALIFIER) final TaskExecutor taskExecutor, CamundaBpmProperties properties) {
final SpringJobExecutor springJobExecutor = new SpringJobExecutor();
springJobExecutor.setTaskExecutor(taskExecutor);
springJobExecutor.setRejectedJobsHandler(new CallerRunsRejectedJobsHandler());
springJobExecutor.setRejectedJobsHandler(new NotifyAcquisitionRejectedJobsHandler());

JobExecutionProperty jobExecution = properties.getJobExecution();
Optional.ofNullable(jobExecution.getLockTimeInMillis()).ifPresent(springJobExecutor::setLockTimeInMillis);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,36 @@

import java.util.Arrays;

import org.camunda.bpm.engine.impl.jobexecutor.JobExecutor;
import org.camunda.bpm.engine.impl.jobexecutor.JobHandler;
import org.camunda.bpm.engine.impl.jobexecutor.NotifyAcquisitionRejectedJobsHandler;
import org.camunda.bpm.engine.impl.jobexecutor.RejectedJobsHandler;
import org.camunda.bpm.engine.spring.SpringProcessEngineConfiguration;
import org.camunda.bpm.spring.boot.starter.property.CamundaBpmProperties;
import org.camunda.bpm.spring.boot.starter.test.nonpa.TestApplication;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(
classes = {TestApplication.class},
webEnvironment = WebEnvironment.NONE
)
public class DefaultJobConfigurationTest {

private final SpringProcessEngineConfiguration processEngineConfiguration = new SpringProcessEngineConfiguration();
private final DefaultJobConfiguration jobConfiguration = new DefaultJobConfiguration();
private final CamundaBpmProperties properties = new CamundaBpmProperties();

@Autowired
JobExecutor jobExecutor;

@Before
public void setUp() {
setField(jobConfiguration, "camundaBpmProperties", properties);
Expand All @@ -62,4 +79,15 @@ public void addJobHandler() {
assertThat(processEngineConfiguration.getCustomJobHandlers()).containsOnly(jobHandler);
}

@Test
public void shouldUseDefaultRejectedJobsHandler() {
// given default configuration

// when
RejectedJobsHandler rejectedJobsHandler = jobExecutor.getRejectedJobsHandler();

// then
assertThat(rejectedJobsHandler).isInstanceOf(NotifyAcquisitionRejectedJobsHandler.class);
}

}

0 comments on commit 9474d68

Please sign in to comment.