protected void addResource( Object source, Map<String, byte[]> resourceMap, String resourceRootPath, String resourceName) { String resourcePath = (resourceRootPath == null ? "" : resourceRootPath).concat(resourceName); log.log(Level.FINEST, "discovered process resource {0}", resourcePath); InputStream inputStream = null; try { if (source instanceof File) { try { inputStream = new FileInputStream((File) source); } catch (IOException e) { throw new ProcessEngineException( "Could not open file for reading " + source + ". " + e.getMessage(), e); } } else { inputStream = (InputStream) source; } byte[] bytes = IoUtil.readInputStream(inputStream, resourcePath); resourceMap.put(resourcePath, bytes); } finally { if (inputStream != null) { IoUtil.closeSilently(inputStream); } } }
public Attachment execute(CommandContext commandContext) { AttachmentEntity attachment = new AttachmentEntity(); attachment.setName(attachmentName); attachment.setDescription(attachmentDescription); attachment.setType(attachmentType); attachment.setTaskId(taskId); attachment.setProcessInstanceId(processInstanceId); attachment.setUrl(url); DbSqlSession dbSqlSession = commandContext.getDbSqlSession(); dbSqlSession.insert(attachment); if (content != null) { byte[] bytes = IoUtil.readInputStream(content, attachmentName); ByteArrayEntity byteArray = new ByteArrayEntity(bytes); dbSqlSession.insert(byteArray); attachment.setContentId(byteArray.getId()); } CommentManager commentManager = commandContext.getCommentManager(); if (commentManager.isHistoryEnabled()) { String userId = Authentication.getAuthenticatedUserId(); CommentEntity comment = new CommentEntity(); comment.setUserId(userId); comment.setType(CommentEntity.TYPE_EVENT); comment.setTime(ClockUtil.getCurrentTime()); comment.setTaskId(taskId); comment.setProcessInstanceId(processInstanceId); comment.setAction(Event.ACTION_ADD_ATTACHMENT); comment.setMessage(attachmentName); commentManager.insert(comment); } return attachment; }
@Deployment(resources = {"org/camunda/bpm/engine/test/repository/one.cmmn"}) public void testGetCaseModel() throws Exception { CaseDefinitionQuery query = repositoryService.createCaseDefinitionQuery(); CaseDefinition caseDefinition = query.singleResult(); String caseDefinitionId = caseDefinition.getId(); InputStream caseModel = repositoryService.getCaseModel(caseDefinitionId); assertNotNull(caseModel); byte[] readInputStream = IoUtil.readInputStream(caseModel, "caseModel"); String model = new String(readInputStream, "UTF-8"); assertTrue(model.contains("<case id=\"one\" name=\"One\">")); IoUtil.closeSilently(caseModel); }
public static void writeStringToFile(String content, String filePath) { BufferedOutputStream outputStream = null; try { outputStream = new BufferedOutputStream(new FileOutputStream(getFile(filePath))); outputStream.write(content.getBytes()); outputStream.flush(); } catch (Exception e) { throw new ProcessEngineException("Couldn't write file " + filePath, e); } finally { IoUtil.closeSilently(outputStream); } }
public static String readFileAsString(String filePath) { byte[] buffer = new byte[(int) getFile(filePath).length()]; BufferedInputStream inputStream = null; try { inputStream = new BufferedInputStream(new FileInputStream(getFile(filePath))); inputStream.read(buffer); } catch (Exception e) { throw new ProcessEngineException("Couldn't read file " + filePath + ": " + e.getMessage()); } finally { IoUtil.closeSilently(inputStream); } return new String(buffer, Charset.forName("UTF-8")); }