use of java.io.FileFilter in project oxTrust by GluuFederation.
the class ViewLogFileAction method prepareLogFiles.
private Map<Integer, String> prepareLogFiles() {
Map<Integer, String> logFiles = new HashMap<Integer, String>();
int fileIndex = 0;
for (SimpleCustomProperty logTemplate : this.logViewerConfiguration.getLogTemplates()) {
String logTemplatePattern = logTemplate.getValue2();
if (StringHelper.isEmpty(logTemplatePattern)) {
continue;
}
String logTemplatePath = FilenameUtils.getFullPath(logTemplatePattern);
String logTemplateFile = FilenameUtils.getName(logTemplatePattern);
File logTemplateBaseDir = new File(logTemplatePath);
FileFilter fileFilter = new AndFileFilter(FileFileFilter.FILE, new WildcardFileFilter(logTemplateFile));
File[] files = logTemplateBaseDir.listFiles(fileFilter);
if (files == null) {
continue;
}
for (int i = 0; i < files.length; i++) {
logFiles.put(fileIndex++, files[i].getPath());
}
}
return logFiles;
}
use of java.io.FileFilter in project intellij-plugins by JetBrains.
the class FlashBuilderSdkFinder method findFBInstallationPath.
@Nullable
public static String findFBInstallationPath() {
final List<File> fbDirs = new ArrayList<>();
final FileFilter filter = dir -> {
final String name = dir.getName();
return dir.isDirectory() && (name.contains("Flash") || name.contains("Flex")) && name.contains("Builder") && new File(dir, SDKS_FOLDER).isDirectory();
};
final String programsPath = SystemInfo.isMac ? "/Applications" : SystemInfo.isWindows ? System.getenv("ProgramFiles") : null;
final File programsDir = programsPath == null ? null : new File(programsPath);
if (programsDir != null && programsDir.isDirectory()) {
Collections.addAll(fbDirs, programsDir.listFiles(filter));
final File adobeDir = new File(programsDir, "Adobe");
if (adobeDir.isDirectory()) {
Collections.addAll(fbDirs, adobeDir.listFiles(filter));
}
}
if (SystemInfo.isWindows) {
final String programs64Path = System.getenv("ProgramW6432");
final File programs64Dir = programs64Path == null ? null : new File(programs64Path);
if (programs64Dir != null && programs64Dir.isDirectory()) {
Collections.addAll(fbDirs, programs64Dir.listFiles(filter));
final File adobeDir = new File(programs64Dir, "Adobe");
if (adobeDir.isDirectory()) {
Collections.addAll(fbDirs, adobeDir.listFiles(filter));
}
}
}
if (fbDirs.size() == 0)
return null;
if (fbDirs.size() == 1)
return fbDirs.get(0).getPath();
// check the most recent
Pair<String, String> pathAndVersion = null;
for (File fbDir : fbDirs) {
final String version = guessFBVersion(fbDir.getName());
if (pathAndVersion == null || StringUtil.compareVersionNumbers(version, pathAndVersion.second) > 0) {
pathAndVersion = Pair.create(fbDir.getPath(), version);
}
}
assert pathAndVersion != null;
return pathAndVersion.first;
}
use of java.io.FileFilter in project CorfuDB by CorfuDB.
the class StreamLogFiles method trimPrefix.
private void trimPrefix() {
// Trim all segments up till the segment that contains the starting address
// (i.e. trim only complete segments)
long endSegment = (startingAddress / RECORDS_PER_LOG_FILE) - 1;
if (endSegment <= 0) {
log.debug("Only one segment detected, ignoring trim");
return;
}
File dir = new File(logDir);
FileFilter fileFilter = new FileFilter() {
public boolean accept(File file) {
String segmentStr = file.getName().split("\\.")[0];
return Long.parseLong(segmentStr) <= endSegment;
}
};
File[] files = dir.listFiles(fileFilter);
for (File file : files) {
if (!file.delete()) {
log.error("Couldn't delete/trim file {}", file.getName());
}
}
log.info("Prefix trim completed, delete segments 0 to {}", endSegment);
}
use of java.io.FileFilter in project jabref by JabRef.
the class EntryFromFileCreatorManager method getFileFilterList.
/**
* Returns a list of all {@link FileFilter} instances (i.e.
* {@link EntryFromFileCreator}, plus the file filter that comes with the
* {@link #getFileFilter()} method.
*
* @return A List of all known possible file filters.
*/
public List<FileFilter> getFileFilterList() {
List<FileFilter> filters = new ArrayList<>();
filters.add(getFileFilter());
for (FileFilter creator : entryCreators) {
filters.add(creator);
}
return filters;
}
use of java.io.FileFilter in project uPortal by Jasig.
the class JaxbPortalDataHandlerService method importDataDirectory.
@Override
public void importDataDirectory(File directory, String pattern, final BatchImportOptions options) {
if (!directory.exists()) {
throw new IllegalArgumentException("The specified directory '" + directory + "' does not exist");
}
//Create the file filter to use when searching for files to import
final FileFilter fileFilter;
if (pattern != null) {
fileFilter = new AntPatternFileFilter(true, false, pattern, this.dataFileExcludes);
} else {
fileFilter = new AntPatternFileFilter(true, false, this.dataFileIncludes, this.dataFileExcludes);
}
//Determine the parent directory to log to
final File logDirectory = determineLogDirectory(options, "import");
//Setup reporting file
final File importReport = new File(logDirectory, "data-import.txt");
final PrintWriter reportWriter;
try {
reportWriter = new PrintWriter(new PeriodicFlushingBufferedWriter(500, new FileWriter(importReport)));
} catch (IOException e) {
throw new RuntimeException("Failed to create FileWriter for: " + importReport, e);
}
//Convert directory to URI String to provide better logging output
final URI directoryUri = directory.toURI();
final String directoryUriStr = directoryUri.toString();
IMPORT_BASE_DIR.set(directoryUriStr);
try {
//Scan the specified directory for files to import
logger.info("Scanning for files to Import from: {}", directory);
final PortalDataKeyFileProcessor fileProcessor = new PortalDataKeyFileProcessor(this.dataKeyTypes, options);
this.directoryScanner.scanDirectoryNoResults(directory, fileFilter, fileProcessor);
final long resourceCount = fileProcessor.getResourceCount();
logger.info("Found {} files to Import from: {}", resourceCount, directory);
//See if the import should fail on error
final boolean failOnError = options != null ? options.isFailOnError() : true;
//Map of files to import, grouped by type
final ConcurrentMap<PortalDataKey, Queue<Resource>> dataToImport = fileProcessor.getDataToImport();
//Import the data files
for (final PortalDataKey portalDataKey : this.dataKeyImportOrder) {
final Queue<Resource> files = dataToImport.remove(portalDataKey);
if (files == null) {
continue;
}
final Queue<ImportFuture<?>> importFutures = new LinkedList<ImportFuture<?>>();
final List<FutureHolder<?>> failedFutures = new LinkedList<FutureHolder<?>>();
final int fileCount = files.size();
logger.info("Importing {} files of type {}", fileCount, portalDataKey);
reportWriter.println(portalDataKey + "," + fileCount);
while (!files.isEmpty()) {
final Resource file = files.poll();
//Check for completed futures on every iteration, needed to fail as fast as possible on an import exception
final List<FutureHolder<?>> newFailed = waitForFutures(importFutures, reportWriter, logDirectory, false);
failedFutures.addAll(newFailed);
final AtomicLong importTime = new AtomicLong(-1);
//Create import task
final Callable<Object> task = new CallableWithoutResult() {
@Override
protected void callWithoutResult() {
IMPORT_BASE_DIR.set(directoryUriStr);
importTime.set(System.nanoTime());
try {
importData(file, portalDataKey);
} finally {
importTime.set(System.nanoTime() - importTime.get());
IMPORT_BASE_DIR.remove();
}
}
};
//Submit the import task
final Future<?> importFuture = this.importExportThreadPool.submit(task);
//Add the future for tracking
importFutures.offer(new ImportFuture(importFuture, file, portalDataKey, importTime));
}
//Wait for all of the imports on of this type to complete
final List<FutureHolder<?>> newFailed = waitForFutures(importFutures, reportWriter, logDirectory, true);
failedFutures.addAll(newFailed);
if (failOnError && !failedFutures.isEmpty()) {
throw new RuntimeException(failedFutures.size() + " " + portalDataKey + " entities failed to import.\n\n" + "\tPer entity exception logs and a full report can be found in " + logDirectory + "\n");
}
reportWriter.flush();
}
if (!dataToImport.isEmpty()) {
throw new IllegalStateException("The following PortalDataKeys are not listed in the dataTypeImportOrder List: " + dataToImport.keySet());
}
logger.info("For a detailed report on the data import see " + importReport);
} catch (InterruptedException e) {
throw new RuntimeException("Interrupted while waiting for entities to import", e);
} finally {
IOUtils.closeQuietly(reportWriter);
IMPORT_BASE_DIR.remove();
}
}
Aggregations