/** * Create a business archive from an {@link InputStream} * * @param inputStream * @return * the business archived that was in the input stream * @throws IOException * in case of issue reading/writing on file system * @throws InvalidBusinessArchiveFormatException * if the input stream does not contains a valid business archive */ public static BusinessArchive readBusinessArchive(final InputStream inputStream) throws IOException, InvalidBusinessArchiveFormatException { File barFolder = null; return INSTANCE.readBusinessArchive(inputStream, contributions); }
/** * Create a business archive from an {@link InputStream} * * @param inputStream * @return * the business archived that was in the input stream * @throws IOException * in case of issue reading/writing on file system * @throws InvalidBusinessArchiveFormatException * if the input stream does not contains a valid business archive */ public static BusinessArchive readBusinessArchive(final InputStream inputStream) throws IOException, InvalidBusinessArchiveFormatException { File barFolder = null; return INSTANCE.readBusinessArchive(inputStream, contributions); }
/** * Create a business archive from a valid file or folder * * @param barOrFolder * the folder or file that contains the business archive to read * @return * the business archived that was in the file or folder * @throws IOException * in case of issue reading/writing on file system * @throws InvalidBusinessArchiveFormatException * if the input stream does not contains a valid business archive */ public static BusinessArchive readBusinessArchive(final File barOrFolder) throws InvalidBusinessArchiveFormatException, IOException { return INSTANCE.readBusinessArchive(barOrFolder, contributions); }
/** * Create a business archive from a valid file or folder * * @param barOrFolder * the folder or file that contains the business archive to read * @return * the business archived that was in the file or folder * @throws IOException * in case of issue reading/writing on file system * @throws InvalidBusinessArchiveFormatException * if the input stream does not contains a valid business archive */ public static BusinessArchive readBusinessArchive(final File barOrFolder) throws InvalidBusinessArchiveFormatException, IOException { return INSTANCE.readBusinessArchive(barOrFolder, contributions); }
protected BusinessArchive readBusinessArchive(final File barOrFolder, List<BusinessArchiveContribution> contributions) throws InvalidBusinessArchiveFormatException, IOException { if (!barOrFolder.exists()) { throw new FileNotFoundException("the file does not exists: " + barOrFolder.getAbsolutePath()); } if (barOrFolder.isDirectory()) { return getBusinessArchive(barOrFolder, contributions); } try (FileInputStream inputStream = new FileInputStream(barOrFolder)) { return readBusinessArchive(inputStream); } }
protected BusinessArchive readBusinessArchive(final File barOrFolder, List<BusinessArchiveContribution> contributions) throws InvalidBusinessArchiveFormatException, IOException { if (!barOrFolder.exists()) { throw new FileNotFoundException("the file does not exists: " + barOrFolder.getAbsolutePath()); } if (barOrFolder.isDirectory()) { return getBusinessArchive(barOrFolder, contributions); } try (FileInputStream inputStream = new FileInputStream(barOrFolder)) { return readBusinessArchive(inputStream); } }
@Test(expected = InvalidBusinessArchiveFormatException.class) public void importOldBusinessArchiveFail() throws Exception { final InputStream resourceAsStream = this.getClass().getResourceAsStream("MyProcess--1.0.bar"); try { BusinessArchiveFactory.readBusinessArchive(resourceAsStream); } finally { resourceAsStream.close(); } }
@Test(expected = IOException.class) public void createBusinessArchiveFolderWithInvalidPath() throws Exception { BusinessArchiveFactory.readBusinessArchive(new File("$$$an invalidPath@//\\รนรน%%%")); }
@Test(expected = InvalidBusinessArchiveFormatException.class) public void readBarWithConnectorFailActionsFails() throws Exception { final InputStream resourceAsStream = BusinessArchiveTest.class.getResourceAsStream("testBuy_a_mini_extended--6.1.bar"); try { BusinessArchiveFactory.readBusinessArchive(resourceAsStream); } finally { resourceAsStream.close(); } }
@Test(expected = InvalidBusinessArchiveFormatException.class) public void importOldBusinessArchiveFileFail() throws Exception { final InputStream inputStream = this.getClass().getResourceAsStream("MyProcess--1.0.bar"); final OutputStream out = new FileOutputStream(barFile); try { final byte buf[] = new byte[1024]; int len; while ((len = inputStream.read(buf)) > 0) { out.write(buf, 0, len); } } finally { out.close(); inputStream.close(); } BusinessArchiveFactory.readBusinessArchive(barFile); }
@Test(expected = InvalidBusinessArchiveFormatException.class) public void readInvalidBusinessArchive() 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); final File file = getFile(ProcessDefinitionBARContribution.PROCESS_DEFINITION_XML); file.delete(); file.createNewFile(); final FileWriter fileWriter = new FileWriter(file); fileWriter.write("test"); fileWriter.flush(); fileWriter.close(); BusinessArchiveFactory.readBusinessArchive(tempFolder); }
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 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); }
@Test(expected = InvalidBusinessArchiveFormatException.class) public void barWithNoHashIsRejected() throws Exception { final ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder().createNewInstance("MyBOSProcess", "1.0"); final DesignProcessDefinition process = processDefinitionBuilder.done(); final BusinessArchive businessArchive = new BusinessArchiveBuilder().createNewBusinessArchive().setProcessDefinition(process).done(); BusinessArchiveFactory.writeBusinessArchiveToFolder(businessArchive, tempFolder); final File infoFile = getFile(ProcessDefinitionBARContribution.PROCESS_INFOS_FILE); infoFile.delete(); BusinessArchiveFactory.readBusinessArchive(tempFolder); }
@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 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); }
@Test(expected = InvalidBusinessArchiveFormatException.class) public void invalidBOSHashIsRejected() throws Exception { final ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder().createNewInstance("MyBOSProcess", "1.0"); final DesignProcessDefinition process = processDefinitionBuilder.done(); final BusinessArchive businessArchive = new BusinessArchiveBuilder().createNewBusinessArchive().setProcessDefinition(process).done(); BusinessArchiveFactory.writeBusinessArchiveToFolder(businessArchive, tempFolder); final File infoFile = getFile(ProcessDefinitionBARContribution.PROCESS_INFOS_FILE); IOUtil.writeContentToFile("bad process infos", infoFile); BusinessArchiveFactory.readBusinessArchive(tempFolder); }
@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()); }
@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); }