/** * Write the {@link BusinessArchive} to the .bar file given in parameter. * <p> * this file can then be read using {@link #readBusinessArchive(File)} * * @param businessArchive * the {@link BusinessArchive} to write * @param businessArchiveFile * the folder into the business archive must be written * @throws IOException */ public static void writeBusinessArchiveToFile(final BusinessArchive businessArchive, final File businessArchiveFile) throws IOException { INSTANCE.writeBusinessArchiveToFile(businessArchive, businessArchiveFile, contributions); }
/** * Write the {@link BusinessArchive} to the .bar file given in parameter. * <p> * this file can then be read using {@link #readBusinessArchive(File)} * * @param businessArchive * the {@link BusinessArchive} to write * @param businessArchiveFile * the folder into the business archive must be written * @throws IOException */ public static void writeBusinessArchiveToFile(final BusinessArchive businessArchive, final File businessArchiveFile) throws IOException { INSTANCE.writeBusinessArchiveToFile(businessArchive, businessArchiveFile, contributions); }
@Override public byte[] exportBarProcessContentUnderHome(final long processDefinitionId) throws ProcessExportException { File barExport = null; try { barExport = File.createTempFile("barExport", ".bar"); barExport.delete(); final BusinessArchive export = getTenantAccessor().getBusinessArchiveService().export(processDefinitionId); BusinessArchiveFactory.writeBusinessArchiveToFile(export, barExport); return FileUtils.readFileToByteArray(barExport); } catch (IOException | InvalidBusinessArchiveFormatException | SBonitaException e) { throw new ProcessExportException(e); } finally { if (barExport != null && barExport.exists()) { barExport.delete(); } } }
@Override public byte[] exportBarProcessContentUnderHome(final long processDefinitionId) throws ProcessExportException { File barExport = null; try { barExport = File.createTempFile("barExport", ".bar"); barExport.delete(); final BusinessArchive export = getTenantAccessor().getBusinessArchiveService().export(processDefinitionId); BusinessArchiveFactory.writeBusinessArchiveToFile(export, barExport); return FileUtils.readFileToByteArray(barExport); } catch (IOException | InvalidBusinessArchiveFormatException | SBonitaException e) { throw new ProcessExportException(e); } finally { if (barExport != null && barExport.exists()) { barExport.delete(); } } }
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(); } }
@Test public void exportBusinessArchiveAsFile() throws Exception { final ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder().createNewInstance("MyProcess", "1.0"); final BusinessArchive businessArchive = new BusinessArchiveBuilder().createNewBusinessArchive().setProcessDefinition(processDefinitionBuilder.done()) .done(); BusinessArchiveFactory.writeBusinessArchiveToFile(businessArchive, barFile); assertTrue(barFile.exists()); assertFalse(barFile.isDirectory()); }
@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); }
@Test(expected = IOException.class) public void exportBusinessArchiveAsFileOnExistingFile() throws Exception { barFile = temporaryFolder.newFile(); 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); }
@Test public void manageBusinessArchiveResources() throws Exception { final ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder().createNewInstance("MyProcess", "1.0"); final BusinessArchive businessArchive = new BusinessArchiveBuilder().createNewBusinessArchive().setProcessDefinition(processDefinitionBuilder.done()) .addExternalResource(new BarResource("dummy.txt", new byte[] { 'a', 'b', 'c', 'd' })).done(); // Add a resource to the biz archive: BusinessArchiveFactory.writeBusinessArchiveToFile(businessArchive, barFile); // read from the file final BusinessArchive readBusinessArchive = BusinessArchiveFactory.readBusinessArchive(barFile); assertTrue("Added resource not found in BusinessArchive", readBusinessArchive.getResources().containsKey("resources/dummy.txt")); }
@Test public void formMappingInBarShouldBeWrittenAndReadProperly() throws Exception { final DesignProcessDefinition designProcessDefinition = new ProcessDefinitionBuilder().createNewInstance("MethCookingPlanning", "Season 5").done(); final FormMappingModel formMappingModel = new FormMappingModel(); formMappingModel.addFormMapping(new FormMappingDefinition("/?myPageTokenID", FormMappingType.PROCESS_START, FormMappingTarget.INTERNAL)); formMappingModel.addFormMapping(new FormMappingDefinition("someExternalPage", FormMappingType.TASK, FormMappingTarget.URL, "requestTask")); final BusinessArchive businessArchive = new BusinessArchiveBuilder().createNewBusinessArchive().setProcessDefinition(designProcessDefinition) .setFormMappings(formMappingModel).done(); BusinessArchiveFactory.writeBusinessArchiveToFile(businessArchive, barFile); final BusinessArchive readBusinessArchive = BusinessArchiveFactory.readBusinessArchive(barFile); assertThat(readBusinessArchive.getFormMappingModel().getFormMappings()).as("Form Mapping should be found in BusinessArchive").hasSize(2); }
BusinessArchiveFactory.writeBusinessArchiveToFile(businessArchive, barFile);
@Test public void putActorMappingInBar() throws Exception { final ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder().createNewInstance("ProductionPlanning", "3.1"); final DesignProcessDefinition designProcessDefinition = processDefinitionBuilder.done(); ActorMapping actorMapping = new ActorMapping(); // Add a resource to the biz archive: final BusinessArchive businessArchive = new BusinessArchiveBuilder().createNewBusinessArchive().setProcessDefinition(designProcessDefinition) .setActorMapping(actorMapping).done(); BusinessArchiveFactory.writeBusinessArchiveToFile(businessArchive, barFile); // read from the file final BusinessArchive readBusinessArchive = BusinessArchiveFactory.readBusinessArchive(barFile); // final ProcessDefinition processDefinition = processAPI.deploy(readBusinessArchive); assertEquals(actorMapping, readBusinessArchive.getActorMapping()); }
BusinessArchiveFactory.writeBusinessArchiveToFile(businessArchive, barFile);
@Test public void generatingOutgoingDefaultTransitionShouldBeConformToProcessDefinitionXsd() throws Exception { final ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder().createNewInstance("MyProcess", "1.0"); processDefinitionBuilder.addActor("Truck Driver").addDescription("A man that is driving bigs trucks"); processDefinitionBuilder.addStartEvent("start1"); processDefinitionBuilder.addGateway("Gateway1", GatewayType.EXCLUSIVE); processDefinitionBuilder.addEndEvent("end1"); processDefinitionBuilder.addEndEvent("end2"); processDefinitionBuilder.addEndEvent("end3"); processDefinitionBuilder.addTransition("start1", "Gateway1"); processDefinitionBuilder.addTransition("Gateway1", "end1"); processDefinitionBuilder.addTransition("Gateway1", "end2"); processDefinitionBuilder.addDefaultTransition("Gateway1", "end3"); final BusinessArchive businessArchive = new BusinessArchiveBuilder().createNewBusinessArchive().setProcessDefinition(processDefinitionBuilder.done()) .done(); BusinessArchiveFactory.writeBusinessArchiveToFile(businessArchive, barFile); BusinessArchiveFactory.readBusinessArchive(barFile); }