List of usage examples for org.apache.commons.vfs FileObject close
public void close() throws FileSystemException;
From source file:com.panet.imeta.job.entries.folderscompare.JobEntryFoldersCompare.java
public Result execute(Result previousResult, int nr, Repository rep, Job parentJob) { LogWriter log = LogWriter.getInstance(); Result result = previousResult; result.setResult(false);// w w w .j av a2 s . co m boolean ok = true; String realFilename1 = getRealFilename1(); String realFilename2 = getRealFilename2(); FileObject folder1 = null; FileObject folder2 = null; FileObject filefolder1 = null; FileObject filefolder2 = null; try { if (filename1 != null && filename2 != null) { // Get Folders/Files to compare folder1 = KettleVFS.getFileObject(realFilename1); folder2 = KettleVFS.getFileObject(realFilename2); if (folder1.exists() && folder2.exists()) { if (!folder1.getType().equals(folder2.getType())) { // pb...we try to compare file with folder !!! log.logError(toString(), Messages.getString("JobFoldersCompare.Log.CanNotCompareFilesFolders")); if (folder1.getType() == FileType.FILE) log.logError(toString(), Messages.getString("JobFoldersCompare.Log.IsAFile", realFilename1)); else if (folder1.getType() == FileType.FOLDER) log.logError(toString(), Messages.getString("JobFoldersCompare.Log.IsAFolder", realFilename1)); else log.logError(toString(), Messages.getString("JobFoldersCompare.Log.IsUnknownFileType", realFilename1)); if (folder2.getType() == FileType.FILE) log.logError(toString(), Messages.getString("JobFoldersCompare.Log.IsAFile", realFilename2)); else if (folder2.getType() == FileType.FOLDER) log.logError(toString(), Messages.getString("JobFoldersCompare.Log.IsAFolder", realFilename2)); else log.logError(toString(), Messages.getString("JobFoldersCompare.Log.IsUnknownFileType", realFilename2)); } else { if (folder1.getType() == FileType.FILE) { // simply compare 2 files .. if (equalFileContents(folder1, folder2)) result.setResult(true); else result.setResult(false); } else if (folder1.getType() == FileType.FOLDER) { // We compare 2 folders ... FileObject list1[] = folder1.findFiles(new TextFileSelector(folder1.toString())); FileObject list2[] = folder2.findFiles(new TextFileSelector(folder2.toString())); int lenList1 = list1.length; int lenList2 = list2.length; if (log.isDetailed()) { log.logDetailed(toString(), Messages.getString( "JobFoldersCompare.Log.FolderContains", realFilename1, "" + lenList1)); log.logDetailed(toString(), Messages.getString( "JobFoldersCompare.Log.FolderContains", realFilename2, "" + lenList2)); } if (lenList1 == lenList2) { HashMap<String, String> collection1 = new HashMap<String, String>(); HashMap<String, String> collection2 = new HashMap<String, String>(); for (int i = 0; i < list1.length; i++) { // Put files list1 in TreeMap collection1 collection1.put(list1[i].getName().getBaseName(), list1[i].toString()); } for (int i = 0; i < list2.length; i++) { // Put files list2 in TreeMap collection2 collection2.put(list2[i].getName().getBaseName(), list2[i].toString()); } // Let's now fetch Folder1 // and for each entry, we will search it in // Folder2 // if the entry exists..we will compare file // entry (file or folder?) // if the 2 entry are file (not folder), we will // compare content Set<Map.Entry<String, String>> entrees = collection1.entrySet(); Iterator<Map.Entry<String, String>> iterateur = entrees.iterator(); while (iterateur.hasNext()) { Map.Entry<String, String> entree = iterateur.next(); if (!collection2.containsKey(entree.getKey())) { ok = false; if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobFoldersCompare.Log.FileCanNotBeFoundIn", entree.getKey().toString(), realFilename2)); } else { if (log.isDebug()) log.logDebug(toString(), Messages.getString("JobFoldersCompare.Log.FileIsFoundIn", entree.getKey().toString(), realFilename2)); filefolder1 = KettleVFS.getFileObject(entree.getValue().toString()); filefolder2 = KettleVFS .getFileObject(collection2.get(entree.getKey()).toString()); if (!filefolder2.getType().equals(filefolder1.getType())) { // The file1 exist in the // folder2..but they don't have the // same type ok = false; if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobFoldersCompare.Log.FilesNotSameType", filefolder1.toString(), filefolder2.toString())); if (filefolder1.getType() == FileType.FILE) log.logError(toString(), Messages.getString( "JobFoldersCompare.Log.IsAFile", filefolder1.toString())); else if (filefolder1.getType() == FileType.FOLDER) log.logError(toString(), Messages.getString( "JobFoldersCompare.Log.IsAFolder", filefolder1.toString())); else log.logError(toString(), Messages.getString( "JobFoldersCompare.Log.IsUnknownFileType", filefolder1.toString())); if (filefolder2.getType() == FileType.FILE) log.logError(toString(), Messages.getString( "JobFoldersCompare.Log.IsAFile", filefolder2.toString())); else if (filefolder2.getType() == FileType.FOLDER) log.logError(toString(), Messages.getString( "JobFoldersCompare.Log.IsAFolder", filefolder2.toString())); else log.logError(toString(), Messages.getString( "JobFoldersCompare.Log.IsUnknownFileType", filefolder2.toString())); } else { // Files are the same type ... if (filefolder2.getType() == FileType.FILE) { // Let's compare file size if (comparefilesize) { long filefolder1_size = filefolder1.getContent().getSize(); long filefolder2_size = filefolder2.getContent().getSize(); if (filefolder1_size != filefolder2_size) { ok = false; if (log.isDetailed()) { log.logDetailed(toString(), Messages.getString( "JobFoldersCompare.Log.FilesNotSameSize", filefolder1.toString(), filefolder2.toString())); log.logDetailed(toString(), Messages.getString( "JobFoldersCompare.Log.SizeFileIs", filefolder1.toString(), "" + filefolder1_size)); log.logDetailed(toString(), Messages.getString( "JobFoldersCompare.Log.SizeFileIs", filefolder2.toString(), "" + filefolder2_size)); } } } if (ok) { // Let's compare files // content.. if (comparefilecontent) { if (!equalFileContents(filefolder1, filefolder2)) { ok = false; if (log.isDetailed()) log.logDetailed(toString(), Messages.getString( "JobFoldersCompare.Log.FilesNotSameContent", filefolder1.toString(), filefolder2.toString())); } } } } } } // log.logBasic(toString(),entree.getKey() + // " - " + entree.getValue()); } result.setResult(ok); } else { // The 2 folders don't have the same files // number if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobFoldersCompare.Log.FoldersDifferentFiles", realFilename1.toString(), realFilename2.toString())); } } else { // File type unknown !! } } } else { if (!folder1.exists()) log.logError(toString(), Messages.getString("JobFileCompare.Log.FileNotExist", realFilename1)); if (!folder2.exists()) log.logError(toString(), Messages.getString("JobFileCompare.Log.FileNotExist", realFilename2)); result.setResult(false); result.setNrErrors(1); } } else { log.logError(toString(), Messages.getString("JobFoldersCompare.Log.Need2Files")); } } catch (Exception e) { result.setResult(false); result.setNrErrors(1); log.logError(toString(), Messages.getString("JobFoldersCompare.Log.ErrorComparing", realFilename2, realFilename2, e.getMessage())); } finally { try { if (folder1 != null) folder1.close(); if (folder2 != null) folder2.close(); if (filefolder1 != null) filefolder1.close(); if (filefolder2 != null) filefolder2.close(); } catch (IOException e) { } } return result; }
From source file:org.apache.commons.vfs.example.ShowProperties.java
public static void main(String[] args) { if (args.length == 0) { System.err.println("Please pass the name of a file as parameter."); System.err.println("e.g. java org.apache.commons.vfs.example.ShowProperties LICENSE.txt"); return;/*from w w w .j a v a2 s .c om*/ } for (int i = 0; i < args.length; i++) { try { FileSystemManager mgr = VFS.getManager(); System.out.println(); System.out.println("Parsing: " + args[i]); FileObject file = mgr.resolveFile(args[i]); System.out.println("URL: " + file.getURL()); System.out.println("getName(): " + file.getName()); System.out.println("BaseName: " + file.getName().getBaseName()); System.out.println("Extension: " + file.getName().getExtension()); System.out.println("Path: " + file.getName().getPath()); System.out.println("Scheme: " + file.getName().getScheme()); System.out.println("URI: " + file.getName().getURI()); System.out.println("Root URI: " + file.getName().getRootURI()); System.out.println("Parent: " + file.getName().getParent()); System.out.println("Type: " + file.getType()); System.out.println("Exists: " + file.exists()); System.out.println("Readable: " + file.isReadable()); System.out.println("Writeable: " + file.isWriteable()); System.out.println("Root path: " + file.getFileSystem().getRoot().getName().getPath()); if (file.exists()) { if (file.getType().equals(FileType.FILE)) { System.out.println("Size: " + file.getContent().getSize() + " bytes"); } else if (file.getType().equals(FileType.FOLDER) && file.isReadable()) { FileObject[] children = file.getChildren(); System.out.println("Directory with " + children.length + " files"); for (int iterChildren = 0; iterChildren < children.length; iterChildren++) { System.out.println("#" + iterChildren + ": " + children[iterChildren].getName()); if (iterChildren > 5) { break; } } } System.out.println("Last modified: " + DateFormat.getInstance().format(new Date(file.getContent().getLastModifiedTime()))); } else { System.out.println("The file does not exist"); } file.close(); } catch (FileSystemException ex) { ex.printStackTrace(); } } }
From source file:org.docx4j.extras.vfs.SaveToVFSZipFile.java
/** * Save the contained Package as a Zip file in the file system * //w ww. ja v a2 s.c o m * @param docxFile A destination FileObject * @return true if successful; * false, otherwise. * @throws Docx4JException if there is an error */ public boolean save(FileObject docxFile) throws Docx4JException { log.info("Saving to" + docxFile); boolean success = false; try { OutputStream docxOut = docxFile.getContent().getOutputStream(); success = _saveToZipFile.save(docxOut); } catch (FileSystemException exc) { exc.printStackTrace(); throw new Docx4JException("Failed to save package", exc); } try { docxFile.close(); } catch (FileSystemException exc) { ;//ignore } return success; }
From source file:org.efaps.webdav4vfs.handler.PutHandler.java
@Override public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { FileObject object = VFSBackend.resolveFile(request.getPathInfo()); try {//from www. j av a 2 s. co m if (!LockManager.getInstance().evaluateCondition(object, getIf(request)).result) { response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED); return; } } catch (LockException e) { response.sendError(SC_LOCKED); return; } catch (ParseException e) { response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED); return; } // it is forbidden to write data on a folder if (object.exists() && FileType.FOLDER.equals(object.getType())) { response.sendError(HttpServletResponse.SC_FORBIDDEN); return; } FileObject parent = object.getParent(); if (!parent.exists()) { response.sendError(HttpServletResponse.SC_FORBIDDEN); return; } if (!FileType.FOLDER.equals(parent.getType())) { response.sendError(HttpServletResponse.SC_CONFLICT); return; } InputStream is = request.getInputStream(); OutputStream os = object.getContent().getOutputStream(); long bytesCopied = IOUtils.copyLarge(is, os); String contentLengthHeader = request.getHeader("Content-length"); LOG.debug(String.format("sent %d/%s bytes", bytesCopied, contentLengthHeader == null ? "unknown" : contentLengthHeader)); os.flush(); object.close(); response.setStatus(HttpServletResponse.SC_CREATED); }
From source file:org.inquidia.kettle.plugins.tokenreplacement.TokenReplacement.java
private void createParentFolder(String filename) throws Exception { // Check for parent folder FileObject parentfolder = null; try {/*from w ww . j a v a2 s . com*/ // Get parent folder parentfolder = KettleVFS.getFileObject(filename).getParent(); if (parentfolder.exists()) { if (isDetailed()) { logDetailed(BaseMessages.getString(PKG, "TokenReplacement.Log.ParentFolderExist", parentfolder.getName())); } } else { if (isDetailed()) { logDetailed(BaseMessages.getString(PKG, "TokenReplacement.Log.ParentFolderNotExist", parentfolder.getName())); } if (meta.isCreateParentFolder()) { parentfolder.createFolder(); if (isDetailed()) { logDetailed(BaseMessages.getString(PKG, "TokenReplacement.Log.ParentFolderCreated", parentfolder.getName())); } } else { throw new KettleException(BaseMessages.getString(PKG, "TokenReplacement.Log.ParentFolderNotExistCreateIt", parentfolder.getName(), filename)); } } } finally { if (parentfolder != null) { try { parentfolder.close(); } catch (Exception ex) { // Ignore } } } }
From source file:org.josso.tooling.gshell.install.installer.VFSInstaller.java
protected void writeContentFromString(String content, FileObject file) throws Exception { OutputStream os = null;//from w w w .jav a 2s . co m os = file.getContent().getOutputStream(); Result result = new StreamResult(os); IOUtils.write(content.getBytes(), os); IOUtils.closeQuietly(os); file.close(); }
From source file:org.jumpmind.symmetric.io.FtpDataWriter.java
protected void sendFiles() { if (fileInfoByTable.size() > 0) { try {//w w w. j a v a 2 s. co m String sftpUri = buildUri(); FileSystemOptions opts = new FileSystemOptions(); FtpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts, true); SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(opts, "no"); SftpFileSystemConfigBuilder.getInstance().setTimeout(opts, 60000); Collection<FileInfo> fileInfos = fileInfoByTable.values(); for (FileInfo fileInfo : fileInfos) { FileObject fileObject = manager.resolveFile(sftpUri + "/" + fileInfo.outputFile.getName(), opts); FileObject localFileObject = manager.resolveFile(fileInfo.outputFile.getAbsolutePath()); fileObject.copyFrom(localFileObject, Selectors.SELECT_SELF); fileObject.close(); } } catch (FileSystemException e) { logger.warn( "If you have not configured your ftp connection it should be configured in conf/ftp-extensions.xml"); throw new IoException(e); } catch (Exception e) { throw new IoException(e); } finally { manager.close(); } } }
From source file:org.mule.transports.vfs.VFSConnector.java
public UMOMessageReceiver createReceiver(UMOComponent component, UMOEndpoint endpoint) throws Exception { String directory = endpoint.getEndpointURI().getAddress(); FileObject dirObject = this.resolveFile(directory); Map props = endpoint.getProperties(); //Override properties on the endpoint for the specific endpoint if (props != null) { String overrideFileExtension = (String) props.get(PROPERTY_FILE_EXTENSION); if (overrideFileExtension != null) { fileExtension = overrideFileExtension; }//from ww w . j a v a 2 s. c om String overrideIncludeSubFolders = (String) props.get(PROPERTY_INCLUDE_SUBFOLDERS); if (overrideIncludeSubFolders != null) { includeSubFolders = new Boolean(overrideIncludeSubFolders).booleanValue(); } } if (dirObject.getType() == FileType.FOLDER) { UMOMessageReceiver fileReceiver = new VFSReceiver(this, component, endpoint); dirObject.close(); closeFileSystem(dirObject); return fileReceiver; } else { dirObject.close(); closeFileSystem(dirObject); throw new MuleException(Message.createStaticMessage("Path is not a directory or does not exist")); } }
From source file:org.objectweb.proactive.extensions.dataspaces.vfs.VFSMountManagerHelper.java
/** * tries to close the FileSystems represented by the given urls * * @param uris file system uris/* ww w .j a v a 2 s . c o m*/ */ public static void closeFileSystems(Collection<String> uris) { try { writeLock.lock(); for (String uri : uris) { if (alreadyMountedSpaces.containsKey(uri)) { Future<FileObject> future = alreadyMountedSpaces.remove(uri); if (future.isDone()) { try { FileObject fo = future.get(); final FileSystem spaceFileSystem = fo.getFileSystem(); // we may not need to close FileObject, but with VFS you never know... try { fo.close(); } catch (org.apache.commons.vfs.FileSystemException x) { logger.debug("Could not close data space root file object : " + fo, x); ProActiveLogger.logEatedException(logger, String.format("Could not close data space %s root file object", fo), x); } vfsManager.closeFileSystem(spaceFileSystem); if (logger.isDebugEnabled()) logger.debug("Unmounted space: " + fo); } catch (InterruptedException e) { // ignore } catch (ExecutionException e) { // ignore } } else { future.cancel(true); } } } } finally { writeLock.unlock(); } }
From source file:org.objectweb.proactive.extensions.dataspaces.vfs.VFSNodeScratchSpaceImpl.java
public synchronized void close() throws IllegalStateException { logger.debug("Closing node scratch space"); checkIfConfigured();//from w w w. j a v a 2 s . co m try { final FileObject fRuntime = partialSpaceFile.getParent(); // rm -r node partialSpaceFile.delete(Selectors.SELECT_ALL); // try to remove runtime file // IMPORTANT FIXME: it seems that despite of VFS FileObject documentation, // looking at AbstractFileObject docs suggests that it does not implement this // delete-if-empty behavior! at least, it appears to be not atomic (and probably may be never atomic // as some protocols may not support this kind of atomic operation?) // refreshing file before deleting may minimize the risk of delete-when-non-empty behavior fRuntime.refresh(); try { final boolean deleted = fRuntime.delete(); if (deleted) logger.debug("Scratch directory for whole runtime was deleted (considered as empty)"); else logger.debug("Scratch directory for whole runtime was not deleted (not considered as empty)"); } catch (org.apache.commons.vfs.FileSystemException x) { logger.debug("Could not delete scratch directory for whole runtime - perhaps it was not empty", x); } // it is probably not needed to close files if manager is closed, but with VFS you never know... fRuntime.close(); partialSpaceFile.close(); } catch (org.apache.commons.vfs.FileSystemException x) { ProActiveLogger.logEatedException(logger, "Could not close correctly node scratch space", x); } finally { this.fileSystemManager.close(); } logger.debug("Closed node scratch space"); }