@Deployment(name = "dummy-client", order = 2) public static WebArchive createDummyClientDeployment() { final WebArchive webArchive = initWebArchiveDeployment("paJavaSerialization2.war", "org/camunda/bpm/integrationtest/processes-javaSerializationEnabled-pa2.xml") .addAsResource(new ByteArrayAsset(serializeJavaObjectValue(new PriorityBean())), PRIORITY_BEAN_INSTANCE_FILE); return webArchive; }
@Before public void setEngines() { ProcessEngineService engineService = BpmPlatform.getProcessEngineService(); engine1 = engineService.getProcessEngine("engine1"); // unregister process application so that context switch cannot be performed unregisterProcessApplication(); }
@Deployment(order = 1) public static WebArchive createDeployment() { final WebArchive webArchive = initWebArchiveDeployment("paJavaSerialization1.war", "org/camunda/bpm/integrationtest/processes-javaSerializationEnabled-pa1.xml") .addClass(PriorityBean.class) .addAsResource("org/camunda/bpm/integrationtest/jobexecutor/JobPrioritizationTest.priorityProcess.bpmn20.xml"); TestContainer.addContainerSpecificProcessEngineConfigurationClass(webArchive); return webArchive; }
@Test @OperateOnDeployment("dummy-client") public void testGracefulDegradationOnMissingClassJava() { // given byte[] serializedPriorityBean = readByteArrayFromClasspath(PRIORITY_BEAN_INSTANCE_FILE); String encodedPriorityBean = StringUtil.fromBytes(Base64.encodeBase64(serializedPriorityBean), processEngine); Map<String, Object> variables = Variables.createVariables().putValue( "priorityBean", Variables.serializedObjectValue(encodedPriorityBean) .serializationDataFormat(SerializationDataFormats.JAVA) .objectTypeName(VARIABLE_CLASS_NAME) .create()); // when processInstance = engine1.getRuntimeService().startProcessInstanceByKey("priorityProcess", variables); // then the job was created successfully and has the default priority although // the bean could not be resolved due to a missing class Job job = engine1.getManagementService().createJobQuery().processInstanceId(processInstance.getProcessInstanceId()).singleResult(); Assert.assertEquals(DefaultJobPriorityProvider.DEFAULT_PRIORITY_ON_RESOLUTION_FAILURE, job.getPriority()); }