@Override public void saveToBarFolder(final BusinessArchive businessArchive, final File barFolder) throws IOException { final DesignProcessDefinition processDefinition = businessArchive.getProcessDefinition(); serializeProcessDefinition(barFolder, processDefinition); }
@Override public void saveToBarFolder(final BusinessArchive businessArchive, final File barFolder) throws IOException { final DesignProcessDefinition processDefinition = businessArchive.getProcessDefinition(); serializeProcessDefinition(barFolder, processDefinition); }
/** * @return * The BusinessArchive * @throws InvalidBusinessArchiveFormatException * when the business archive is inconsistent in the current state */ public BusinessArchive done() throws InvalidBusinessArchiveFormatException { if (entity.getProcessDefinition() == null) { throw new InvalidBusinessArchiveFormatException("missing process definition"); } final ArrayList<String> errors = new ArrayList<>(); for (final DocumentDefinition document : entity.getProcessDefinition().getProcessContainer().getDocumentDefinitions()) { if (document.getFile() != null && !document.getFile().isEmpty()) { final byte[] resources = entity.getResource("documents/" + document.getFile()); if (resources == null) { errors.add("missing document in the business archive that is present in the process definition " + document.getFile()); } } } if (!errors.isEmpty()) { throw new InvalidBusinessArchiveFormatException(errors); } return entity; }
/** * @return * The BusinessArchive * @throws InvalidBusinessArchiveFormatException * when the business archive is inconsistent in the current state */ public BusinessArchive done() throws InvalidBusinessArchiveFormatException { if (entity.getProcessDefinition() == null) { throw new InvalidBusinessArchiveFormatException("missing process definition"); } final ArrayList<String> errors = new ArrayList<>(); for (final DocumentDefinition document : entity.getProcessDefinition().getProcessContainer().getDocumentDefinitions()) { if (document.getFile() != null && !document.getFile().isEmpty()) { final byte[] resources = entity.getResource("documents/" + document.getFile()); if (resources == null) { errors.add("missing document in the business archive that is present in the process definition " + document.getFile()); } } } if (!errors.isEmpty()) { throw new InvalidBusinessArchiveFormatException(errors); } return entity; }
private DesignProcessDefinition getDesignProcessDefinition(final ProcessDefinitionBuilder builder) throws Exception { final DesignProcessDefinition process = builder.done(); final BusinessArchive businessArchive = new BusinessArchiveBuilder().createNewBusinessArchive().setProcessDefinition(process).done(); BusinessArchiveFactory.writeBusinessArchiveToFile(businessArchive, barFile); final InputStream inputStream = new FileInputStream(barFile); try { final BusinessArchive businessArchive2 = BusinessArchiveFactory.readBusinessArchive(inputStream); return businessArchive2.getProcessDefinition(); } finally { inputStream.close(); } }
@Override public SProcessDefinition deploy(BusinessArchive businessArchive) throws SObjectCreationException, SAlreadyExistsException { final DesignProcessDefinition designProcessDefinition = businessArchive.getProcessDefinition(); SProcessDefinition sProcessDefinition; try { checkIfExists(designProcessDefinition); checkNoV6Forms(businessArchive); sProcessDefinition = processDefinitionService.store(designProcessDefinition); final boolean isResolved = businessArchiveArtifactsManager.resolveDependencies(businessArchive, sProcessDefinition); if (isResolved) { processDefinitionService.resolveProcess(sProcessDefinition.getId()); } dependencyService.refreshClassLoaderAfterUpdate(ScopeType.PROCESS, sProcessDefinition.getId()); } catch (SV6FormsDeployException | SAlreadyExistsException e) { throw e; } catch (final SBonitaException e) { throw new SObjectCreationException(e); } info(sProcessDefinition); return sProcessDefinition; }
@Override public SProcessDefinition deploy(BusinessArchive businessArchive) throws SObjectCreationException, SAlreadyExistsException { final DesignProcessDefinition designProcessDefinition = businessArchive.getProcessDefinition(); SProcessDefinition sProcessDefinition; try { checkIfExists(designProcessDefinition); checkNoV6Forms(businessArchive); sProcessDefinition = processDefinitionService.store(designProcessDefinition); final boolean isResolved = businessArchiveArtifactsManager.resolveDependencies(businessArchive, sProcessDefinition); if (isResolved) { processDefinitionService.resolveProcess(sProcessDefinition.getId()); } dependencyService.refreshClassLoaderAfterUpdate(ScopeType.PROCESS, sProcessDefinition.getId()); } catch (SV6FormsDeployException | SAlreadyExistsException e) { throw e; } catch (final SBonitaException e) { throw new SObjectCreationException(e); } info(sProcessDefinition); return sProcessDefinition; }
public void deployFormMappings(final BusinessArchive businessArchive, final long processDefinitionId) throws ProcessDeployException { final List<FormMappingDefinition> formMappings = businessArchive.getFormMappingModel().getFormMappings(); final FlowElementContainerDefinition flowElementContainer = businessArchive.getProcessDefinition().getFlowElementContainer(); final List<ActivityDefinition> activities = flowElementContainer.getActivities(); try { // Deals with human tasks declared in process definition: for (final ActivityDefinition activity : activities) { createFormMapping(processDefinitionId, formMappingService, formMappings, activity); } // Deals with the process start / process overview forms: createFormMapping(formMappingService, processDefinitionId, getFormMappingForType(formMappings, PROCESS_START), PROCESS_START.getId(), null); createFormMapping(formMappingService, processDefinitionId, getFormMappingForType(formMappings, PROCESS_OVERVIEW), PROCESS_OVERVIEW.getId(), null); } catch (final SObjectCreationException | SBonitaReadException e) { throw new ProcessDeployException(e); } }
@Test public void createBusinessArchiveFileFromFolder() throws Exception { final ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder().createNewInstance("MyProcess", "1.0"); final DesignProcessDefinition process = processDefinitionBuilder.done(); final BusinessArchive businessArchive = new BusinessArchiveBuilder().createNewBusinessArchive().setProcessDefinition(process).done(); BusinessArchiveFactory.writeBusinessArchiveToFolder(businessArchive, tempFolder); BusinessArchiveFactory.businessArchiveFolderToFile(barFile, tempFolder.getAbsolutePath()); assertTrue(barFile.exists()); final InputStream inputStream = new FileInputStream(barFile); final BusinessArchive businessArchive2; try { businessArchive2 = BusinessArchiveFactory.readBusinessArchive(inputStream); } finally { inputStream.close(); } final ProcessDefinition result = businessArchive2.getProcessDefinition(); assertEquals(process, result); }
@Test public void createBusinessArchiveFromFile() throws Exception { final ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder().createNewInstance("MyProcess", "1.0"); final DesignProcessDefinition process = processDefinitionBuilder.done(); final BusinessArchive businessArchive = new BusinessArchiveBuilder().createNewBusinessArchive().setProcessDefinition(process).done(); BusinessArchiveFactory.writeBusinessArchiveToFolder(businessArchive, tempFolder); BusinessArchiveFactory.businessArchiveFolderToFile(barFile, tempFolder.getAbsolutePath()); assertTrue(barFile.exists()); final BusinessArchive businessArchive2 = BusinessArchiveFactory.readBusinessArchive(barFile); final ProcessDefinition result = businessArchive2.getProcessDefinition(); assertEquals(process, result); }
public void deployFormMappings(final BusinessArchive businessArchive, final long processDefinitionId) throws ProcessDeployException { final List<FormMappingDefinition> formMappings = businessArchive.getFormMappingModel().getFormMappings(); final FlowElementContainerDefinition flowElementContainer = businessArchive.getProcessDefinition().getFlowElementContainer(); final List<ActivityDefinition> activities = flowElementContainer.getActivities(); try { // Deals with human tasks declared in process definition: for (final ActivityDefinition activity : activities) { createFormMapping(processDefinitionId, formMappingService, formMappings, activity); } // Deals with the process start / process overview forms: createFormMapping(formMappingService, processDefinitionId, getFormMappingForType(formMappings, PROCESS_START), PROCESS_START.getId(), null); createFormMapping(formMappingService, processDefinitionId, getFormMappingForType(formMappings, PROCESS_OVERVIEW), PROCESS_OVERVIEW.getId(), null); } catch (final SObjectCreationException | SBonitaReadException e) { throw new ProcessDeployException(e); } }
@Test public void readBusinessArchive() throws Exception { final ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder().createNewInstance("MyProcess", "1.0"); final DesignProcessDefinition process = processDefinitionBuilder.done(); final BusinessArchive businessArchive = new BusinessArchiveBuilder().createNewBusinessArchive().setProcessDefinition(process).done(); BusinessArchiveFactory.writeBusinessArchiveToFile(businessArchive, barFile); final InputStream inputStream = new FileInputStream(barFile); final BusinessArchive businessArchive2; try { businessArchive2 = BusinessArchiveFactory.readBusinessArchive(inputStream); } finally { inputStream.close(); } final ProcessDefinition result = businessArchive2.getProcessDefinition(); assertEquals(process, result); }
final DesignProcessDefinition result = businessArchive2.getProcessDefinition(); assertEquals(process.getName(), result.getName()); assertEquals(process.getVersion(), result.getVersion());
@Test public void createBusinessArchiveWithProcessDefinition() throws Exception { final ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder().createNewInstance("MyProcess", "1.0"); final DesignProcessDefinition process = processDefinitionBuilder.done(); final BusinessArchive businessArchive = new BusinessArchiveBuilder().createNewBusinessArchive().setProcessDefinition(process).done(); final ProcessDefinition result = businessArchive.getProcessDefinition(); assertEquals(process, result); }
final DesignProcessDefinition result = businessArchive2.getProcessDefinition(); final List<DocumentDefinition> documentDefinitions = result.getFlowElementContainer().getDocumentDefinitions(); final DocumentDefinition testDoc1 = documentDefinitions.get(0);