List of usage examples for org.apache.commons.vfs FileObject close
public void close() throws FileSystemException;
From source file:com.panet.imeta.job.entries.zipfile.JobEntryZipFile.java
private boolean createParentFolder(String filename) { // Check for parent folder FileObject parentfolder = null; boolean result = false; LogWriter log = LogWriter.getInstance(); try {// w w w . j a va 2 s . c om // Get parent folder parentfolder = KettleVFS.getFileObject(filename).getParent(); if (!parentfolder.exists()) { if (log.isDetailed()) log.logDetailed(toString(), "Folder" + parentfolder.getName() + " does not exist !"); parentfolder.createFolder(); if (log.isDetailed()) log.logDetailed(toString(), "Folder was created."); } else { if (log.isDetailed()) log.logDetailed(toString(), "Folder" + parentfolder.getName() + " exist !"); } result = true; } catch (Exception e) { log.logError(toString(), "Couldn't created folder " + parentfolder.getName()); } finally { if (parentfolder != null) { try { parentfolder.close(); } catch (Exception ex) { } ; } } return result; }
From source file:com.panet.imeta.job.entries.folderisempty.JobEntryFolderIsEmpty.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 .java 2 s .co m*/ result.setNrErrors(1); filescount = 0; folderscount = 0; pattern = null; if (!Const.isEmpty(getWildcard())) pattern = Pattern.compile(getRealWildcard()); if (foldername != null) { String realFoldername = getRealFoldername(); FileObject FolderObject = null; try { FolderObject = KettleVFS.getFileObject(realFoldername); if (FolderObject.exists()) { //Check if it's a folder if (FolderObject.getType() == FileType.FOLDER) { // File provided is a folder, so we can process ... FolderObject.findFiles(new TextFileSelector(FolderObject.toString())); if (log.isBasic()) log.logBasic("Total files", "We found : " + filescount + " file(s)"); if (filescount == 0) { result.setResult(true); result.setNrErrors(0); } } else { // Not a folder, fail log.logError("Found files", "[" + realFoldername + "] is not a folder, failing."); } } else { // No Folder found if (log.isBasic()) log.logBasic(toString(), "we can not find [" + realFoldername + "] !"); } } catch (IOException e) { log.logError(toString(), "Could not create Folder [" + realFoldername + "], exception: " + e.getMessage()); result.setResult(false); result.setNrErrors(1); } finally { if (FolderObject != null) { try { FolderObject.close(); } catch (IOException ex) { } ; } } } else { log.logError(toString(), "No Foldername is defined."); } return result; }
From source file:com.panet.imeta.job.entries.createfile.JobEntryCreateFile.java
public Result execute(Result previousResult, int nr, Repository rep, Job parentJob) throws KettleException { LogWriter log = LogWriter.getInstance(); Result result = previousResult; result.setResult(false);//from w w w.j a v a 2s . c om if (filename != null) { String realFilename = getRealFilename(); FileObject fileObject = null; try { fileObject = KettleVFS.getFileObject(realFilename); if (fileObject.exists()) { if (isFailIfFileExists()) { // File exists and fail flag is on. result.setResult(false); log.logError(toString(), "File [" + realFilename + "] exists, failing."); } else { // File already exists, no reason to try to create it result.setResult(true); log.logBasic(toString(), "File [" + realFilename + "] already exists, not recreating."); } // add filename to result filenames if needed if (isAddFilenameToResult()) addFilenameToResult(realFilename, log, result, parentJob); } else { // No file yet, create an empty file. fileObject.createFile(); log.logBasic(toString(), "File [" + realFilename + "] created!"); // add filename to result filenames if needed if (isAddFilenameToResult()) addFilenameToResult(realFilename, log, result, parentJob); result.setResult(true); } } catch (IOException e) { log.logError(toString(), "Could not create file [" + realFilename + "], exception: " + e.getMessage()); result.setResult(false); result.setNrErrors(1); } finally { if (fileObject != null) { try { fileObject.close(); } catch (IOException ex) { } ; } } } else { log.logError(toString(), "No filename is defined."); } return result; }
From source file:com.panet.imeta.core.fileinput.FileInputList.java
public static FileInputList createFolderList(VariableSpace space, String[] folderName, String[] folderRequired) { FileInputList fileInputList = new FileInputList(); // Replace possible environment variables... final String realfolder[] = space.environmentSubstitute(folderName); for (int i = 0; i < realfolder.length; i++) { final String onefile = realfolder[i]; final boolean onerequired = YES.equalsIgnoreCase(folderRequired[i]); final boolean subdirs = true; final FileTypeFilter filter = FileTypeFilter.ONLY_FOLDERS; if (Const.isEmpty(onefile)) continue; FileObject directoryFileObject = null; try {/*from w w w . ja v a2s .c o m*/ // Find all folder names in this directory // directoryFileObject = KettleVFS.getFileObject(onefile); if (directoryFileObject != null && directoryFileObject.getType() == FileType.FOLDER) // it's a directory { FileObject[] fileObjects = directoryFileObject.findFiles(new AllFileSelector() { public boolean traverseDescendents(FileSelectInfo info) { return info.getDepth() == 0 || subdirs; } public boolean includeFile(FileSelectInfo info) { // Never return the parent directory of a file list. if (info.getDepth() == 0) { return false; } FileObject fileObject = info.getFile(); try { if (fileObject != null && filter.isFileTypeAllowed(fileObject.getType())) { return true; } return false; } catch (FileSystemException ex) { // Upon error don't process the file. return false; } } }); if (fileObjects != null) { for (int j = 0; j < fileObjects.length; j++) { if (fileObjects[j].exists()) fileInputList.addFile(fileObjects[j]); } } if (Const.isEmpty(fileObjects)) { if (onerequired) fileInputList.addNonAccessibleFile(directoryFileObject); } // Sort the list: quicksort, only for regular files fileInputList.sortFiles(); } else { if (onerequired && !directoryFileObject.exists()) fileInputList.addNonExistantFile(directoryFileObject); } } catch (Exception e) { LogWriter.getInstance().logError("FileInputList", Const.getStackTracker(e)); } finally { try { if (directoryFileObject != null) directoryFileObject.close(); directoryFileObject = null; } catch (Exception e) { } ; } } return fileInputList; }
From source file:com.panet.imeta.job.entries.copyfiles.JobEntryCopyFiles.java
private boolean CreateDestinationFolder(FileObject filefolder) { LogWriter log = LogWriter.getInstance(); FileObject folder = null; try {//w w w.j a va 2 s . c om if (destination_is_a_file) folder = filefolder.getParent(); else folder = filefolder; if (!folder.exists()) { if (create_destination_folder) { if (log.isDetailed()) log.logDetailed("Folder", "Folder " + folder.getName() + " does not exist !"); folder.createFolder(); if (log.isDetailed()) log.logDetailed("Folder", "Folder parent was created."); } else { log.logError("Folder", "Folder " + folder.getName() + " does not exist !"); return false; } } return true; } catch (Exception e) { log.logError(toString(), "Couldn't created parent folder " + folder.getName()); } finally { if (folder != null) { try { folder.close(); } catch (Exception ex) { } ; } } return false; }
From source file:com.panet.imeta.trans.steps.getxmldata.GetXMLData.java
private boolean ReadNextString() { try {//from w w w.ja va2 s .c o m data.readrow = getRow(); // Grab another row ... if (data.readrow == null) // finished processing! { if (log.isDetailed()) logDetailed(Messages.getString("GetXMLData.Log.FinishedProcessing")); return false; } if (first) { first = false; if (meta.getIsInFields()) { data.inputRowMeta = getInputRowMeta(); data.outputRowMeta = data.inputRowMeta.clone(); meta.getFields(data.outputRowMeta, getStepname(), null, null, this); // Get total previous fields data.totalpreviousfields = data.inputRowMeta.size(); // Create convert meta-data objects that will contain Date & // Number formatters data.convertRowMeta = data.outputRowMeta.clone(); for (int i = 0; i < data.convertRowMeta.size(); i++) data.convertRowMeta.getValueMeta(i).setType(ValueMetaInterface.TYPE_STRING); // For String to <type> conversions, we allocate a // conversion meta data row as well... // data.convertRowMeta = data.outputRowMeta.clone(); for (int i = 0; i < data.convertRowMeta.size(); i++) { data.convertRowMeta.getValueMeta(i).setType(ValueMetaInterface.TYPE_STRING); } // Check is XML field is provided if (Const.isEmpty(meta.getXMLField())) { logError(Messages.getString("GetXMLData.Log.NoField")); throw new KettleException(Messages.getString("GetXMLData.Log.NoField")); } // cache the position of the field if (data.indexOfXmlField < 0) { data.indexOfXmlField = getInputRowMeta().indexOfValue(meta.getXMLField()); if (data.indexOfXmlField < 0) { // The field is unreachable ! logError(Messages.getString("GetXMLData.Log.ErrorFindingField") + "[" //$NON-NLS-1$//$NON-NLS-2$ + meta.getXMLField() + "]"); throw new KettleException(Messages.getString("GetXMLData.Exception.CouldnotFindField", //$NON-NLS-1$ meta.getXMLField())); //$NON-NLS-2$ } } } } if (meta.getIsInFields()) { // get XML field value String Fieldvalue = getInputRowMeta().getString(data.readrow, data.indexOfXmlField); if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("GetXMLData.Log.XMLStream", meta.getXMLField(), Fieldvalue)); if (meta.getIsAFile()) { FileObject file = null; try { // XML source is a file. file = KettleVFS.getFileObject(Fieldvalue); // Open the XML document if (!setDocument(null, file, false, false)) { throw new KettleException(Messages.getString("GetXMLData.Log.UnableCreateDocument")); } if (!applyXPath()) { throw new KettleException(Messages.getString("GetXMLData.Log.UnableApplyXPath")); } addFileToResultFilesname(file); if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("GetXMLData.Log.LoopFileOccurences", "" + data.nodesize, file.getName().getBaseName())); } catch (Exception e) { throw new KettleException(e); } finally { try { if (file != null) file.close(); } catch (Exception e) { } } } else { boolean url = false; boolean xmltring = true; if (meta.isReadUrl()) { url = true; xmltring = false; } // Open the XML document if (!setDocument(Fieldvalue, null, xmltring, url)) { throw new KettleException(Messages.getString("GetXMLData.Log.UnableCreateDocument")); } // Apply XPath and set node list if (!applyXPath()) { throw new KettleException(Messages.getString("GetXMLData.Log.UnableApplyXPath")); } if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("GetXMLData.Log.LoopFileOccurences", "" + data.nodesize)); } } } catch (Exception e) { logError(Messages.getString("GetXMLData.Log.UnexpectedError", e.toString())); stopAll(); logError(Const.getStackTracker(e)); setErrors(1); return false; } return true; }
From source file:com.panet.imeta.job.entries.ssh2get.JobEntrySSH2GET.java
private boolean CreateFolder(String filefolder) { FileObject folder = null; try {//from w w w .j ava 2 s . co m folder = KettleVFS.getFileObject(filefolder); if (!folder.exists()) { if (createtargetfolder) { folder.createFolder(); if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSSH2GET.Log.FolderCreated", folder.toString())); } else return false; } return true; } catch (Exception e) { log.logError(toString(), Messages.getString("JobSSH2GET.Log.CanNotCreateFolder", folder.toString())); } finally { if (folder != null) { try { folder.close(); } catch (Exception ex) { } ; } } return false; }
From source file:com.akretion.kettle.steps.terminatooor.ScriptValuesAddedFunctions.java
public static void createFolder(ScriptEngine actualContext, Bindings actualObject, Object[] ArgList, Object FunctionContext) { try {//from w ww.ja v a 2 s. c om if (ArgList.length == 1 && !isNull(ArgList[0]) && !isUndefined(ArgList[0])) { FileObject fileObject = null; try { fileObject = KettleVFS.getFileObject((String) ArgList[0]); if (!fileObject.exists()) { fileObject.createFolder(); } else { new RuntimeException("folder [" + (String) ArgList[0] + "] already exist!"); } } catch (IOException e) { throw new RuntimeException("The function call createFolder is not valid."); } finally { if (fileObject != null) try { fileObject.close(); } catch (Exception e) { } } } else { throw new RuntimeException("The function call createFolder is not valid."); } } catch (Exception e) { throw new RuntimeException(e.toString()); } }
From source file:com.panet.imeta.job.entries.sftp.JobEntrySFTP.java
public Result execute(Result previousResult, int nr, Repository rep, Job parentJob) { LogWriter log = LogWriter.getInstance(); Result result = previousResult; List<RowMetaAndData> rows = result.getRows(); RowMetaAndData resultRow = null;/*ww w . java2 s. com*/ result.setResult(false); long filesRetrieved = 0; if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTP.Log.StartJobEntry")); HashSet<String> list_previous_filenames = new HashSet<String>(); if (copyprevious) { if (rows.size() == 0) { if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTP.ArgsFromPreviousNothing")); result.setResult(true); return result; } try { // Copy the input row to the (command line) arguments for (int iteration = 0; iteration < rows.size(); iteration++) { resultRow = rows.get(iteration); // Get file names String file_previous = resultRow.getString(0, null); if (!Const.isEmpty(file_previous)) { list_previous_filenames.add(file_previous); if (log.isDebug()) log.logDebug(toString(), Messages.getString("JobSFTP.Log.FilenameFromResult", file_previous)); } } } catch (Exception e) { log.logError(toString(), Messages.getString("JobSFTP.Error.ArgFromPrevious")); result.setNrErrors(1); return result; } } SFTPClient sftpclient = null; // String substitution.. String realServerName = environmentSubstitute(serverName); String realServerPort = environmentSubstitute(serverPort); String realUsername = environmentSubstitute(userName); String realPassword = environmentSubstitute(password); String realSftpDirString = environmentSubstitute(sftpDirectory); String realWildcard = environmentSubstitute(wildcard); String realTargetDirectory = environmentSubstitute(targetDirectory); FileObject TargetFolder = null; try { // Let's perform some checks before starting if (!Const.isEmpty(realTargetDirectory)) { TargetFolder = KettleVFS.getFileObject(realTargetDirectory); boolean TargetFolderExists = TargetFolder.exists(); if (TargetFolderExists) { if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTP.Log.TargetFolderExists", realTargetDirectory)); } else { log.logError(toString(), Messages.getString("JobSFTP.Error.TargetFolderNotExists", realTargetDirectory)); if (!createtargetfolder) { // Error..Target folder can not be found ! result.setNrErrors(1); return result; } else { // create target folder TargetFolder.createFolder(); if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTP.Log.TargetFolderCreated", realTargetDirectory)); } } } if (TargetFolder != null) { TargetFolder.close(); TargetFolder = null; } // Create sftp client to host ... sftpclient = new SFTPClient(InetAddress.getByName(realServerName), Const.toInt(realServerPort, 22), realUsername); if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTP.Log.OpenedConnection", realServerName, realServerPort, realUsername)); // login to ftp host ... sftpclient.login(realPassword); // Passwords should not appear in log files. //log.logDetailed(toString(), "logged in using password "+realPassword); // Logging this seems a bad idea! Oh well. // move to spool dir ... if (!Const.isEmpty(realSftpDirString)) { try { sftpclient.chdir(realSftpDirString); } catch (Exception e) { log.logError(toString(), Messages.getString("JobSFTP.Error.CanNotFindRemoteFolder", realSftpDirString)); throw new Exception(e); } if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTP.Log.ChangedDirectory", realSftpDirString)); } Pattern pattern = null; // Get all the files in the current directory... String[] filelist = sftpclient.dir(); if (filelist == null) { // Nothing was found !!! exit result.setResult(true); if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTP.Log.Found", "" + 0)); return result; } if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTP.Log.Found", "" + filelist.length)); if (!copyprevious) { if (!Const.isEmpty(realWildcard)) pattern = Pattern.compile(realWildcard); } // Get the files in the list... for (int i = 0; i < filelist.length && !parentJob.isStopped(); i++) { boolean getIt = true; // First see if the file matches the regular expression! if (!copyprevious && pattern != null) { Matcher matcher = pattern.matcher(filelist[i]); getIt = matcher.matches(); } if (getIt || list_previous_filenames.contains(filelist[i])) { if (log.isDebug()) log.logDebug(toString(), Messages.getString("JobSFTP.Log.GettingFiles", filelist[i], realTargetDirectory)); String targetFilename = realTargetDirectory + Const.FILE_SEPARATOR + filelist[i]; sftpclient.get(targetFilename, filelist[i]); filesRetrieved++; if (isaddresult) { // Add to the result files... ResultFile resultFile = new ResultFile(ResultFile.FILE_TYPE_GENERAL, KettleVFS.getFileObject(targetFilename), parentJob.getJobname(), toString()); result.getResultFiles().put(resultFile.getFile().toString(), resultFile); if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTP.Log.FilenameAddedToResultFilenames", filelist[i])); } if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTP.Log.TransferedFile", filelist[i])); // Delete the file if this is needed! if (remove) { sftpclient.delete(filelist[i]); if (log.isDetailed()) log.logDetailed(toString(), Messages.getString("JobSFTP.Log.DeletedFile", filelist[i])); } } } result.setResult(true); result.setNrFilesRetrieved(filesRetrieved); } catch (Exception e) { result.setNrErrors(1); log.logError(toString(), Messages.getString("JobSFTP.Error.GettingFiles", e.getMessage())); log.logError(toString(), Const.getStackTracker(e)); } finally { // close connection, if possible try { if (sftpclient != null) sftpclient.disconnect(); } catch (Exception e) { // just ignore this, makes no big difference } try { if (TargetFolder != null) { TargetFolder.close(); TargetFolder = null; } if (list_previous_filenames != null) list_previous_filenames = null; } catch (Exception e) { } } return result; }
From source file:com.panet.imeta.trans.steps.scriptvalues_mod.ScriptValuesAddedFunctions.java
public static void createFolder(Context actualContext, Scriptable actualObject, Object[] ArgList, Function FunctionContext) { try {/*from w w w . ja v a 2 s.co m*/ if (ArgList.length == 1 && !isNull(ArgList[0]) && !isUndefined(ArgList[0])) { FileObject fileObject = null; try { fileObject = KettleVFS.getFileObject(Context.toString(ArgList[0])); if (!fileObject.exists()) { fileObject.createFolder(); } else { Context.reportRuntimeError("folder [" + Context.toString(ArgList[0]) + "] already exist!"); } } catch (IOException e) { throw Context.reportRuntimeError("The function call createFolder is not valid."); } finally { if (fileObject != null) try { fileObject.close(); } catch (Exception e) { } } } else { throw Context.reportRuntimeError("The function call createFolder is not valid."); } } catch (Exception e) { throw Context.reportRuntimeError(e.toString()); } }