List of usage examples for org.apache.commons.io.filefilter SuffixFileFilter SuffixFileFilter
public SuffixFileFilter(List suffixes)
From source file:org.kawanfw.file.test.run.filter.BuiltInFilterTest.java
/** * @throws MalformedURLException/*from www . j av a 2s . c o m*/ * @throws UnknownHostException * @throws ConnectException * @throws SocketException * @throws InvalidLoginException * @throws RemoteException * @throws IOException * @throws SecurityException */ public void doIt(RemoteSession remoteSession) throws MalformedURLException, UnknownHostException, ConnectException, SocketException, InvalidLoginException, RemoteException, IOException, SecurityException { RemoteFile file = new RemoteFile(remoteSession, "/"); // List all text files in out root directory // using an Apache Commons FileFiter AndFileFilter andFileFilter = new AndFileFilter(); andFileFilter.addFileFilter(new SuffixFileFilter(".txt")); RemoteFile[] files = file.listFiles((FileFilter) andFileFilter); for (RemoteFile remoteFile : files) { MessageDisplayer.display("Remote text file: " + remoteFile); } MessageDisplayer.display(); MessageDisplayer.display("file.listFiles( new SuffixFileFilter(\".txt\") " + file); MessageDisplayer.display("RemoteFile [] files.length: " + files.length); for (int i = 0; i < files.length; i++) { Assert.assertTrue("file is file", files[i].isFile()); Assert.assertTrue("file is a text file", files[i].toString().endsWith(".txt")); MessageDisplayer.display(files[i]); } FileFilter fileFilter = FileFileFilter.FILE; files = file.listFiles(fileFilter); MessageDisplayer.display(); MessageDisplayer.display("file.listFiles(FileFileFilter.FILE) " + file); if (files == null) { MessageDisplayer.display("remote directory is empty: " + file); } else { MessageDisplayer.display("RemoteFile [] files.length: " + files.length); for (int i = 0; i < files.length; i++) { MessageDisplayer.display(files[i]); Assert.assertTrue("file is non-directory", files[i].isFile()); } } fileFilter = DirectoryFileFilter.DIRECTORY; files = file.listFiles(fileFilter); MessageDisplayer.display(); MessageDisplayer.display("file.listFiles(DirectoryFileFilter.DIRECTORY) " + file); if (files == null) { MessageDisplayer.display("remote directory is empty: " + file); } else { MessageDisplayer.display("RemoteFile [] files.length: " + files.length); for (int i = 0; i < files.length; i++) { Assert.assertTrue("file is directory", files[i].isDirectory()); MessageDisplayer.display(files[i]); } } MessageDisplayer.display(); // Force huge filter test andFileFilter = new AndFileFilter(); int cpt = 0; while (cpt < 500) { cpt++; andFileFilter.addFileFilter(new SuffixFileFilter(".txt")); } String serialFilterBase64 = new ClassSerializer<FileFilter>().toBase64(andFileFilter); System.out.println("serialFilterBase64 size: " + (serialFilterBase64.length() / 1024) + " Kb."); files = file.listFiles((FileFilter) andFileFilter); for (RemoteFile remoteFile : files) { MessageDisplayer.display("Remote text file with huge FileFilter: " + remoteFile); } MessageDisplayer.display(); MessageDisplayer.display("file.listFiles( new SuffixFileFilter(\".txt\") " + file); MessageDisplayer.display("RemoteFile [] files.length: " + files.length); for (int i = 0; i < files.length; i++) { Assert.assertTrue("file is file", files[i].isFile()); Assert.assertTrue("file is a text file", files[i].toString().endsWith(".txt")); MessageDisplayer.display(files[i]); } MessageDisplayer.display(); System.out.println("serialFilterBase64 size: " + (serialFilterBase64.length() / 1024) + " Kb."); String[] filesStr = file.list((FilenameFilter) andFileFilter); for (String fileStr : filesStr) { MessageDisplayer.display("Remote text file with huge FilenameFilter: " + fileStr); } MessageDisplayer.display(); MessageDisplayer.display("file.list( new SuffixFileFilter(\".txt\") " + file); MessageDisplayer.display("String [] filesStr: " + filesStr.length); for (int i = 0; i < filesStr.length; i++) { Assert.assertTrue("file is a text file", filesStr[i].endsWith(".txt")); MessageDisplayer.display(filesStr[i]); } }
From source file:org.kuali.kfs.gl.batch.EnterpriseFeederFileSetType.java
/** * Return set of file user identifiers from a list of files * //from ww w . j a va2 s . c o m * @param user user who uploaded or will upload file * @param files list of files objects * @return Set containing all user identifiers from list of files * @see org.kuali.kfs.sys.batch.BatchInputFileSetType#extractFileUserIdentifiers(org.kuali.rice.kim.api.identity.Person, java.util.List) */ public Set<String> extractFileUserIdentifiers(Person user, List<File> files) { Set<String> extractedFileUserIdentifiers = new TreeSet<String>(); StringBuilder buf = new StringBuilder(); buf.append(FILE_NAME_PREFIX).append(FILE_NAME_PART_DELIMITER).append(user.getPrincipalName()) .append(FILE_NAME_PART_DELIMITER); String prefixString = buf.toString(); IOFileFilter prefixFilter = new PrefixFileFilter(prefixString); IOFileFilter suffixFilter = new OrFileFilter(new SuffixFileFilter(EnterpriseFeederService.DATA_FILE_SUFFIX), new SuffixFileFilter(EnterpriseFeederService.RECON_FILE_SUFFIX)); IOFileFilter combinedFilter = new AndFileFilter(prefixFilter, suffixFilter); for (File file : files) { if (combinedFilter.accept(file)) { String fileName = file.getName(); if (fileName.endsWith(EnterpriseFeederService.DATA_FILE_SUFFIX)) { extractedFileUserIdentifiers.add(StringUtils.substringBetween(fileName, prefixString, EnterpriseFeederService.DATA_FILE_SUFFIX)); } else if (fileName.endsWith(EnterpriseFeederService.RECON_FILE_SUFFIX)) { extractedFileUserIdentifiers.add(StringUtils.substringBetween(fileName, prefixString, EnterpriseFeederService.RECON_FILE_SUFFIX)); } else { LOG.error("Unable to determine file user identifier for file name: " + fileName); throw new RuntimeException( "Unable to determine file user identifier for file name: " + fileName); } } } return extractedFileUserIdentifiers; }
From source file:org.kuali.kfs.gl.batch.FileEnterpriseFeederTest.java
/** * This method asserts that there doesn't exist any done files in the enterprise feeder directory that do not begin with * DONE_FILE_PREFIX (see constants definition in this class). If there are files that begin w/ that prefix in the directory, * they are deleted. After checking/ deleting done files, it will then create a done files listed in the fileSets parameter. * /* w w w . j ava 2 s.com*/ * @param fileSets A list of Integers, representing the done files that will be created. (see class description) to see how * these integers map into file names. * @throws IOException if a file cannot be successfully read */ protected void assertNoExtraDoneFilesExistAndCreateDoneFilesForSets(List<Integer> fileSets) throws IOException { FileFilter fileFilter = new SuffixFileFilter(FileEnterpriseFeederServiceImpl.DONE_FILE_SUFFIX); File directory = new File( ((FileEnterpriseFeederServiceImpl) SpringContext.getBean(FileEnterpriseFeederServiceImpl.class)) .getDirectoryName()); File[] doneFiles = directory.listFiles(fileFilter); StringBuilder sb = new StringBuilder(); for (File file : doneFiles) { if (file.getName().startsWith(TEST_FILE_PREFIX)) { // this is a test done file, just delete it file.delete(); } else { // maybe someone put in files in the staging directory that shouldn't be there sb.append(file.getName() + ";"); } } assertTrue("Done files exist in the directory ( " + sb.toString() + " ), which will cause this step to produce unexpected results when testing." + " To run this test, the done files must be removed (do NOT do this if running on a production system).", doneFiles.length == 0); for (Integer setNumber : fileSets) { File doneFile = new File(generateDoneFilename(setNumber)); if (!doneFile.exists()) { doneFile.createNewFile(); } } }
From source file:org.kuali.kfs.gl.batch.FileEnterpriseFeederTest.java
/** * Asserts true if no test done files exist. If so, method removes done files before assert. * // www .ja v a2 s . c o m * @throws IOException thrown if a data file cannot be successfully read */ protected void assertNoExtraTestDoneFilesExistAfterTest() throws IOException { FileFilter fileFilter = new AndFileFilter(new PrefixFileFilter(TEST_FILE_PREFIX), new SuffixFileFilter(FileEnterpriseFeederServiceImpl.DONE_FILE_SUFFIX)); File directory = new File( ((FileEnterpriseFeederServiceImpl) SpringContext.getBean(FileEnterpriseFeederServiceImpl.class)) .getDirectoryName()); File[] doneFiles = directory.listFiles(fileFilter); StringBuilder buf = new StringBuilder(); for (File file : doneFiles) { buf.append(file.getName() + ";"); file.delete(); } assertTrue("The following test done files existed ( " + buf.toString() + " ), but shouldn't have. These test done files have been deleted. ", buf.length() == 0); }
From source file:org.kuali.kfs.gl.batch.service.impl.FileEnterpriseFeederServiceImpl.java
/** * Feeds file sets in the directory whose name is returned by the invocation to getDirectoryName() * /*from www. j a va 2s. co m*/ * @see org.kuali.kfs.gl.batch.service.EnterpriseFeederService#feed(java.lang.String) */ public void feed(String processName, boolean performNotifications) { // ensure that this feeder implementation may not be run concurrently on this JVM // to consider: maybe use java NIO classes to perform done file locking? synchronized (FileEnterpriseFeederServiceImpl.class) { if (StringUtils.isBlank(directoryName)) { throw new IllegalArgumentException("directoryName not set for FileEnterpriseFeederServiceImpl."); } //add a step to check for directory paths prepareDirectories(getRequiredDirectoryNames()); FileFilter doneFileFilter = new SuffixFileFilter(DONE_FILE_SUFFIX); File enterpriseFeedFile = null; String enterpriseFeedFileName = GeneralLedgerConstants.BatchFileSystem.ENTERPRISE_FEED + GeneralLedgerConstants.BatchFileSystem.EXTENSION; enterpriseFeedFile = new File(glOriginEntryDirectoryName + File.separator + enterpriseFeedFileName); PrintStream enterpriseFeedPs = null; try { enterpriseFeedPs = new PrintStream(enterpriseFeedFile); } catch (FileNotFoundException e) { LOG.error("enterpriseFeedFile doesn't exist " + enterpriseFeedFileName); throw new RuntimeException("enterpriseFeedFile doesn't exist " + enterpriseFeedFileName); } LOG.info("New File created for enterprise feeder service run: " + enterpriseFeedFileName); File directory = new File(directoryName); if (!directory.exists() || !directory.isDirectory()) { LOG.error("Directory doesn't exist and or it's not really a directory " + directoryName); throw new RuntimeException( "Directory doesn't exist and or it's not really a directory " + directoryName); } File[] doneFiles = directory.listFiles(doneFileFilter); reorderDoneFiles(doneFiles); LedgerSummaryReport ledgerSummaryReport = new LedgerSummaryReport(); List<EnterpriseFeederStatusAndErrorMessagesWrapper> statusAndErrorsList = new ArrayList<EnterpriseFeederStatusAndErrorMessagesWrapper>(); for (File doneFile : doneFiles) { File dataFile = null; File reconFile = null; EnterpriseFeederStatusAndErrorMessagesWrapper statusAndErrors = new EnterpriseFeederStatusAndErrorMessagesWrapper(); statusAndErrors.setErrorMessages(new ArrayList<Message>()); try { dataFile = getDataFile(doneFile); reconFile = getReconFile(doneFile); statusAndErrors.setFileNames(dataFile, reconFile, doneFile); if (dataFile == null) { LOG.error("Unable to find data file for done file: " + doneFile.getAbsolutePath()); statusAndErrors.getErrorMessages() .add(new Message( "Unable to find data file for done file: " + doneFile.getAbsolutePath(), Message.TYPE_FATAL)); statusAndErrors.setStatus(new RequiredFilesMissingStatus()); } if (reconFile == null) { LOG.error("Unable to find recon file for done file: " + doneFile.getAbsolutePath()); statusAndErrors.getErrorMessages() .add(new Message( "Unable to find recon file for done file: " + doneFile.getAbsolutePath(), Message.TYPE_FATAL)); statusAndErrors.setStatus(new RequiredFilesMissingStatus()); } if (dataFile != null && reconFile != null) { LOG.info("Data file: " + dataFile.getAbsolutePath()); LOG.info("Reconciliation File: " + reconFile.getAbsolutePath()); fileEnterpriseFeederHelperService.feedOnFile(doneFile, dataFile, reconFile, enterpriseFeedPs, processName, reconciliationTableId, statusAndErrors, ledgerSummaryReport); } } catch (RuntimeException e) { // we need to be extremely resistant to a file load failing so that it doesn't prevent other files from loading LOG.error("Caught exception when feeding done file: " + doneFile.getAbsolutePath()); } finally { statusAndErrorsList.add(statusAndErrors); boolean doneFileDeleted = doneFile.delete(); if (!doneFileDeleted) { statusAndErrors.getErrorMessages().add(new Message( "Unable to delete done file: " + doneFile.getAbsolutePath(), Message.TYPE_FATAL)); } if (performNotifications) { enterpriseFeederNotificationService.notifyFileFeedStatus(processName, statusAndErrors.getStatus(), doneFile, dataFile, reconFile, statusAndErrors.getErrorMessages()); } } } enterpriseFeedPs.close(); generateReport(statusAndErrorsList, ledgerSummaryReport, glOriginEntryDirectoryName + File.separator + enterpriseFeedFileName); String enterpriseFeedDoneFileName = enterpriseFeedFileName.replace( GeneralLedgerConstants.BatchFileSystem.EXTENSION, GeneralLedgerConstants.BatchFileSystem.DONE_FILE_EXTENSION); File enterpriseFeedDoneFile = new File( glOriginEntryDirectoryName + File.separator + enterpriseFeedDoneFileName); if (!enterpriseFeedDoneFile.exists()) { try { enterpriseFeedDoneFile.createNewFile(); } catch (IOException e) { LOG.error("Unable to create done file for enterprise feed output group.", e); throw new RuntimeException("Unable to create done file for enterprise feed output group.", e); } } } }
From source file:org.kuali.kfs.gl.document.service.impl.CorrectionDocumentServiceImpl.java
protected List<File> getReportsToAggregateIntoReport(String documentNumber) { File inputDirectory = new File(temporaryReportsDirectory); if (!inputDirectory.exists() || !inputDirectory.isDirectory()) { LOG.error(temporaryReportsDirectory + " does not exist or is not a directory."); throw new RuntimeException("Unable to locate temporary reports directory"); }// ww w. ja v a 2s. c om String filePrefix = documentNumber + "_" + temporaryReportFilenameComponent; FileFilter filter = FileFilterUtils.andFileFilter(new PrefixFileFilter(filePrefix), new SuffixFileFilter(temporaryReportFilenameSuffix)); // FSKD-244, KFSMI-5424 sort with filename, just in case List<File> fileList = Arrays.asList(inputDirectory.listFiles(filter)); Comparator fileNameComparator = new Comparator() { public int compare(Object obj1, Object obj2) { if (obj1 == null) { return -1; } if (obj2 == null) { return 1; } File file1 = (File) obj1; File file2 = (File) obj2; return ((Comparable) file1.getName()).compareTo(file2.getName()); } }; Collections.sort(fileList, fileNameComparator); return fileList; }
From source file:org.kuali.kfs.module.cam.batch.AssetBarcodeInventoryInputFileType.java
/** * Return set of file user identifiers from a list of files * /*from w ww . j a v a 2 s. co m*/ * @param user user who uploaded or will upload file * @param files list of files objects * @return Set containing all user identifiers from list of files * * @see org.kuali.kfs.sys.batch.BatchInputFileSetType#extractFileUserIdentifiers(org.kuali.rice.kim.api.identity.Person, java.util.List) */ public Set<String> extractFileUserIdentifiers(Person user, List<File> files) { Set<String> extractedFileUserIdentifiers = new TreeSet<String>(); StringBuilder buf = new StringBuilder(); buf.append(FILE_NAME_PREFIX).append(FILE_NAME_PART_DELIMITER).append(user.getPrincipalName()) .append(FILE_NAME_PART_DELIMITER); String prefixString = buf.toString(); IOFileFilter prefixFilter = new PrefixFileFilter(prefixString); IOFileFilter suffixFilter = new SuffixFileFilter(CamsConstants.BarCodeInventory.DATA_FILE_EXTENSION); IOFileFilter combinedFilter = new AndFileFilter(prefixFilter, suffixFilter); for (File file : files) { if (combinedFilter.accept(file)) { String fileName = file.getName(); if (fileName.endsWith(CamsConstants.BarCodeInventory.DATA_FILE_EXTENSION)) { extractedFileUserIdentifiers.add(StringUtils.substringBetween(fileName, prefixString, CamsConstants.BarCodeInventory.DATA_FILE_EXTENSION)); } else { LOG.error("Unable to determine file user identifier for file name: " + fileName); throw new RuntimeException( "Unable to determine file user identifier for file name: " + fileName); } } } return extractedFileUserIdentifiers; }
From source file:org.kuali.kfs.module.ld.batch.service.impl.FileEnterpriseFeederServiceImpl.java
/** * Feeds file sets in the directory whose name is returned by the invocation to getDirectoryName() * * @see org.kuali.kfs.gl.batch.service.EnterpriseFeederService#feed(java.lang.String) */// w w w . j ava2 s. c o m @Override public void feed(String processName, boolean performNotifications) { // ensure that this feeder implementation may not be run concurrently on this JVM // to consider: maybe use java NIO classes to perform done file locking? synchronized (this) { if (StringUtils.isBlank(directoryName)) { throw new IllegalArgumentException("directoryName not set for FileEnterpriseFeederServiceImpl."); } FileFilter doneFileFilter = new SuffixFileFilter(DONE_FILE_SUFFIX); File enterpriseFeedFile = null; String enterpriseFeedFileName = LaborConstants.BatchFileSystem.LABOR_ENTERPRISE_FEED + LaborConstants.BatchFileSystem.EXTENSION; enterpriseFeedFile = new File(laborOriginEntryDirectoryName + File.separator + enterpriseFeedFileName); PrintStream enterpriseFeedPs = null; try { enterpriseFeedPs = new PrintStream(enterpriseFeedFile); } catch (FileNotFoundException e) { LOG.error("enterpriseFeedFile doesn't exist " + enterpriseFeedFileName); throw new RuntimeException("enterpriseFeedFile doesn't exist " + enterpriseFeedFileName); } if (LOG.isInfoEnabled()) { LOG.info("New File created for enterprise feeder service run: " + enterpriseFeedFileName); } File directory = new File(directoryName); if (!directory.exists() || !directory.isDirectory()) { LOG.error("Directory doesn't exist and or it's not really a directory " + directoryName); throw new RuntimeException( "Directory doesn't exist and or it's not really a directory " + directoryName); } File[] doneFiles = directory.listFiles(doneFileFilter); reorderDoneFiles(doneFiles); LedgerSummaryReport ledgerSummaryReport = new LedgerSummaryReport(); // keeps track of statistics for reporting EnterpriseFeederReportData feederReportData = new EnterpriseFeederReportData(); List<EnterpriseFeederStatusAndErrorMessagesWrapper> statusAndErrorsList = new ArrayList<EnterpriseFeederStatusAndErrorMessagesWrapper>(); for (File doneFile : doneFiles) { File dataFile = null; File reconFile = null; EnterpriseFeederStatusAndErrorMessagesWrapper statusAndErrors = new EnterpriseFeederStatusAndErrorMessagesWrapper(); statusAndErrors.setErrorMessages(new ArrayList<Message>()); dataFile = getDataFile(doneFile); reconFile = getReconFile(doneFile); statusAndErrors.setFileNames(dataFile, reconFile, doneFile); if (dataFile == null) { LOG.error("Unable to find data file for done file: " + doneFile.getAbsolutePath()); statusAndErrors.getErrorMessages() .add(new Message( "Unable to find data file for done file: " + doneFile.getAbsolutePath(), Message.TYPE_FATAL)); statusAndErrors.setStatus(new RequiredFilesMissingStatus()); } if (reconFile == null) { LOG.error("Unable to find recon file for done file: " + doneFile.getAbsolutePath()); statusAndErrors.getErrorMessages() .add(new Message( "Unable to find recon file for done file: " + doneFile.getAbsolutePath(), Message.TYPE_FATAL)); statusAndErrors.setStatus(new RequiredFilesMissingStatus()); } try { if (dataFile != null && reconFile != null) { if (LOG.isInfoEnabled()) { LOG.info("Data file: " + dataFile.getAbsolutePath()); LOG.info("Reconciliation File: " + reconFile.getAbsolutePath()); } fileEnterpriseFeederHelperService.feedOnFile(doneFile, dataFile, reconFile, enterpriseFeedPs, processName, reconciliationTableId, statusAndErrors, ledgerSummaryReport, errorStatisticsReport, feederReportData); } } catch (RuntimeException e) { // we need to be extremely resistant to a file load failing so that it doesn't prevent other files from loading LOG.error("Caught exception when feeding done file: " + doneFile.getAbsolutePath()); } finally { statusAndErrorsList.add(statusAndErrors); boolean doneFileDeleted = doneFile.delete(); if (!doneFileDeleted) { statusAndErrors.getErrorMessages().add(new Message( "Unable to delete done file: " + doneFile.getAbsolutePath(), Message.TYPE_FATAL)); } if (performNotifications) { enterpriseFeederNotificationService.notifyFileFeedStatus(processName, statusAndErrors.getStatus(), doneFile, dataFile, reconFile, statusAndErrors.getErrorMessages()); } } } enterpriseFeedPs.close(); // if errors encountered is greater than max allowed the enterprise feed file should not be sent boolean enterpriseFeedFileCreated = false; if (feederReportData.getNumberOfErrorEncountered() > getMaximumNumberOfErrorsAllowed()) { enterpriseFeedFile.delete(); } else { // generate done file String enterpriseFeedDoneFileName = enterpriseFeedFileName.replace( LaborConstants.BatchFileSystem.EXTENSION, LaborConstants.BatchFileSystem.DONE_FILE_EXTENSION); File enterpriseFeedDoneFile = new File( laborOriginEntryDirectoryName + File.separator + enterpriseFeedDoneFileName); if (!enterpriseFeedDoneFile.exists()) { try { enterpriseFeedDoneFile.createNewFile(); } catch (IOException e) { LOG.error("Unable to create done file for enterprise feed output group.", e); throw new RuntimeException("Unable to create done file for enterprise feed output group.", e); } } enterpriseFeedFileCreated = true; } // write out totals to log file if (LOG.isInfoEnabled()) { LOG.info("Total records read: " + feederReportData.getNumberOfRecordsRead()); LOG.info("Total amount read: " + feederReportData.getTotalAmountRead()); LOG.info("Total records written: " + feederReportData.getNumberOfRecordsRead()); LOG.info("Total amount written: " + feederReportData.getTotalAmountWritten()); } generateReport(enterpriseFeedFileCreated, feederReportData, statusAndErrorsList, ledgerSummaryReport, laborOriginEntryDirectoryName + File.separator + enterpriseFeedFileName); } }
From source file:org.kuali.kfs.sys.batch.ReportAggregationStep.java
protected List<File> retrieveFilesToAggregate() { File inputDirectory = new File(inputFilePath); if (!inputDirectory.exists() || !inputDirectory.isDirectory()) { throw new RuntimeException(inputFilePath + " does not exist or is not a directory."); }/*from w ww .ja va2 s .com*/ FileFilter filter = FileFilterUtils.andFileFilter(new PrefixFileFilter(inputFilePrefix), new SuffixFileFilter(inputFileSuffix)); List<File> fileList = Arrays.asList(inputDirectory.listFiles(filter)); Collections.sort(fileList); return fileList; }
From source file:org.limy.eclipse.qalab.action.part.CalcCoberturaAction.java
/** * instrument?SNXt@Cdest/classesRs?[?B/* w w w . j av a 2 s. c o m*/ * @throws IOException * @throws CoreException */ private void copyAllClassFiles() throws CoreException, IOException { for (IPath path : getEnv().getBinPaths(true)) { String dir = LimyQalabUtils.createFullPath(getJavaProject(), path); FileUtils.copyDirectory(new File(dir), getDestFile("classes")); } Collection<Object> files = FileUtils.listFiles(getDestFile("classes"), new SuffixFileFilter("Test.class"), TrueFileFilter.INSTANCE); for (Object file : files) { ((File) file).delete(); } }