Example #1
0
  @SuppressWarnings("deprecation")
  @Override
  protected void onSetUpInTransaction() throws Exception {
    super.onSetUpInTransaction();

    personService = (PersonService) applicationContext.getBean("PersonService");
    person1 = createPerson(USER1);
    person2 = createPerson(USER2);
    person3 = createPerson(USER3);

    BPMEngineRegistry registry =
        (BPMEngineRegistry) applicationContext.getBean("bpm_engineRegistry");
    workflowComponent = registry.getWorkflowComponent(JBPMEngine.ENGINE_ID);
    taskComponent = registry.getTaskComponent(JBPMEngine.ENGINE_ID);
    packageComponent = (WorkflowPackageComponent) applicationContext.getBean("workflowPackageImpl");

    // deploy test process messages
    I18NUtil.registerResourceBundle("jbpmresources/test-messages");

    // deploy test process definition
    ClassPathResource processDef =
        new ClassPathResource("jbpmresources/test_processdefinition.xml");
    assertFalse(
        workflowComponent.isDefinitionDeployed(
            processDef.getInputStream(), MimetypeMap.MIMETYPE_XML));
    WorkflowDeployment deployment =
        workflowComponent.deployDefinition(processDef.getInputStream(), MimetypeMap.MIMETYPE_XML);
    testWorkflowDef = deployment.definition;
    assertNotNull(testWorkflowDef);
    assertEquals("jbpm$test", testWorkflowDef.name);
    assertEquals("1", testWorkflowDef.version);
    assertTrue(
        workflowComponent.isDefinitionDeployed(
            processDef.getInputStream(), MimetypeMap.MIMETYPE_XML));

    authenticationComponent.setCurrentUser(AuthenticationUtil.getAdminUserName());
  }
  @Override
  protected String applyInternal() throws Exception {
    WorkflowDeployer deployer =
        (WorkflowDeployer) applicationContext.getBean("workflowPatchDeployer");
    WorkflowAdminService workflowAdminService =
        (WorkflowAdminService) applicationContext.getBean("workflowAdminService");

    if (workflowDefinitions != null) {
      for (Properties props : workflowDefinitions) {
        props.put(WorkflowDeployer.REDEPLOY, "true");
      }
      deployer.setWorkflowDefinitions(workflowDefinitions);
      deployer.init();
    }

    int undeployed = 0;
    StringBuilder errorMessages = new StringBuilder();
    if (undeployWorkflowNames != null) {
      List<String> undeployableWorkflows = new ArrayList<String>(undeployWorkflowNames);
      for (String workflowName : undeployWorkflowNames) {
        String engineId = BPMEngineRegistry.getEngineId(workflowName);
        if (workflowAdminService.isEngineEnabled(engineId)) {
          undeployableWorkflows.add(workflowName);
        } else {
          errorMessages.append(
              I18NUtil.getMessage(MSG_ERROR_ENGINE_DEACTIVATED, workflowName, engineId));
        }
      }
      undeployed = deployer.undeploy(undeployableWorkflows);
    }

    // done
    StringBuilder msg = new StringBuilder();
    if (workflowDefinitions != null) {
      msg.append(I18NUtil.getMessage(MSG_DEPLOYED, workflowDefinitions.size()));
    }
    if (undeployWorkflowNames != null) {
      if (msg.length() > 0) {
        msg.append(' ');
      }
      msg.append(I18NUtil.getMessage(MSG_UNDEPLOYED, undeployed));
    }
    if (errorMessages.length() > 0) {
      msg.append(errorMessages);
    }
    return msg.toString();
  }