/** * 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); }
/** * Save the uncompressed business archive folder to a compressed file. * <p> * this file can then be read using {@link #readBusinessArchive(File)} * * @param destFile * @param folderPath * @return * @throws IOException */ public static String businessArchiveFolderToFile(final File destFile, final String folderPath) throws IOException { return INSTANCE.businessArchiveFolderToFile(destFile, folderPath, 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); }
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 void writeBusinessArchiveToFile(final BusinessArchive businessArchive, final File businessArchiveFile, List<BusinessArchiveContribution> contributions) throws IOException { final File tempFile = File.createTempFile("tempBarFolder", null); tempFile.delete(); tempFile.mkdir(); try { writeBusinessArchiveToFolder(businessArchive, tempFile); zipBarFolder(businessArchiveFile, tempFile); } finally { IOUtil.deleteDir(tempFile); } }
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(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); }
@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); }
/** * Write the {@link BusinessArchive} to the folder given in parameter * <p> * the written business archive the uncompressed version of {@link #writeBusinessArchiveToFile(BusinessArchive, File)} * * @param businessArchive * the {@link BusinessArchive} to write * @param folderPath * the folder into the business archive must be written * @throws IOException */ public static void writeBusinessArchiveToFolder(final BusinessArchive businessArchive, final File folderPath) throws IOException { INSTANCE.writeBusinessArchiveToFolder(businessArchive, folderPath, contributions); }
protected String businessArchiveFolderToFile(final File destFile, final String folderPath, List<BusinessArchiveContribution> contributions) throws IOException { zipBarFolder(destFile, new File(folderPath)); return destFile.getAbsolutePath(); }
protected BusinessArchive readBusinessArchive(final InputStream inputStream, List<BusinessArchiveContribution> contributions) throws IOException, InvalidBusinessArchiveFormatException { File barFolder = File.createTempFile("tempBarFolder", null); barFolder.delete(); barFolder.mkdir(); try { IOUtil.unzipToFolder(inputStream, barFolder); return getBusinessArchive(barFolder, contributions); } catch (final InvalidBusinessArchiveFormatException e) { throw e; } catch (final Exception e) { throw new InvalidBusinessArchiveFormatException("Invalid format, can't read the BAR file", e); } finally { IOUtil.deleteDir(barFolder); } }
@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 = 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 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); }
protected void writeBusinessArchiveToFile(final BusinessArchive businessArchive, final File businessArchiveFile, List<BusinessArchiveContribution> contributions) throws IOException { final File tempFile = File.createTempFile("tempBarFolder", null); tempFile.delete(); tempFile.mkdir(); try { writeBusinessArchiveToFolder(businessArchive, tempFile); zipBarFolder(businessArchiveFile, tempFile); } finally { IOUtil.deleteDir(tempFile); } }
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); } }
/** * Write the {@link BusinessArchive} to the folder given in parameter * <p> * the written business archive the uncompressed version of {@link #writeBusinessArchiveToFile(BusinessArchive, File)} * * @param businessArchive * the {@link BusinessArchive} to write * @param folderPath * the folder into the business archive must be written * @throws IOException */ public static void writeBusinessArchiveToFolder(final BusinessArchive businessArchive, final File folderPath) throws IOException { INSTANCE.writeBusinessArchiveToFolder(businessArchive, folderPath, contributions); }
protected String businessArchiveFolderToFile(final File destFile, final String folderPath, List<BusinessArchiveContribution> contributions) throws IOException { zipBarFolder(destFile, new File(folderPath)); return destFile.getAbsolutePath(); }
protected BusinessArchive readBusinessArchive(final InputStream inputStream, List<BusinessArchiveContribution> contributions) throws IOException, InvalidBusinessArchiveFormatException { File barFolder = File.createTempFile("tempBarFolder", null); barFolder.delete(); barFolder.mkdir(); try { IOUtil.unzipToFolder(inputStream, barFolder); return getBusinessArchive(barFolder, contributions); } catch (final InvalidBusinessArchiveFormatException e) { throw e; } catch (final Exception e) { throw new InvalidBusinessArchiveFormatException("Invalid format, can't read the BAR file", e); } finally { IOUtil.deleteDir(barFolder); } }
@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")); }