protected Collection getFiles() { Map fileMap = new HashMap(); Project p = getProject(); for (int i = 0; i < filesets.size(); i++) { FileSet fs = (FileSet)filesets.elementAt(i); DirectoryScanner ds = fs.getDirectoryScanner(p); String[] srcFiles = ds.getIncludedFiles(); File dir = fs.getDir(p); for (int j = 0; j < srcFiles.length; j++) { File src = new File(dir, srcFiles[j]); fileMap.put(src.getAbsolutePath(), src); } } return fileMap.values(); }
private String[] getFiles() { List<String> files = new LinkedList<String>(); for ( FileSet fileSet : fileSets ) { final DirectoryScanner ds = fileSet.getDirectoryScanner( getProject() ); final String[] dsFiles = ds.getIncludedFiles(); for ( String dsFileName : dsFiles ) { File f = new File( dsFileName ); if ( !f.isFile() ) { f = new File( ds.getBasedir(), dsFileName ); } files.add( f.getAbsolutePath() ); } } return ArrayHelper.toStringArray(files); }
DirectoryScanner scanner = new DirectoryScanner(); scanner.setIncludes(new String[]{"**/*.java"}); scanner.setBasedir("C:/Temp"); scanner.setCaseSensitive(false); scanner.scan(); String[] files = scanner.getIncludedFiles();
private boolean hasMatch(File dir, String pattern, boolean bCaseSensitive) throws InterruptedException { class Cancel extends RuntimeException {} DirectoryScanner ds = bound == Integer.MAX_VALUE ? new DirectoryScanner() : new DirectoryScanner() { int ticks; long start = System.currentTimeMillis(); @Override public synchronized boolean isCaseSensitive() { if (!filesIncluded.isEmpty() || !dirsIncluded.isEmpty() || ticks++ > bound || System.currentTimeMillis() - start > 5000) { throw new Cancel(); } filesNotIncluded.clear(); dirsNotIncluded.clear(); // notFollowedSymlinks might be large, but probably unusual // scannedDirs will typically be largish, but seems to be needed return super.isCaseSensitive(); } }; ds.setBasedir(reading(dir)); ds.setIncludes(new String[] {pattern}); ds.setCaseSensitive(bCaseSensitive); try { ds.scan(); } catch (Cancel c) { if (ds.getIncludedFilesCount()!=0 || ds.getIncludedDirsCount()!=0) { return true; } else { throw new InterruptedException("no matches found within " + bound); } } return ds.getIncludedFilesCount()!=0 || ds.getIncludedDirsCount()!=0; }
/** * Retrieves all matched files from the given scanner. * * @param scanner A directory scanner. Note, that {@link DirectoryScanner#scan()} * must be called before calling this method. * @param logIndex A log entry index. Used only for log messages. * @return A list of files, retrieved from the given scanner. */ private List<File> retrieveAllScannedFiles(DirectoryScanner scanner, int logIndex) { final String[] fileNames = scanner.getIncludedFiles(); log(String.format(Locale.ROOT, "%d) Adding %d files from directory %s", logIndex, fileNames.length, scanner.getBasedir()), Project.MSG_VERBOSE); return Arrays.stream(fileNames) .map(name -> scanner.getBasedir() + File.separator + name) .map(File::new) .collect(Collectors.toList()); }
included = new Vector<>(); String analyzerClassName = DEFAULT_ANALYZER_CLASS; DependencyAnalyzer analyzer; analyzer = analyzerClass.newInstance(); } catch (Exception e) { throw new BuildException("Unable to load dependency analyzer: " + analyzerClassName, e); analyzer.addClassPath(new Path(null, basedir.getPath())); additionalBaseDirs.stream().map(File::getPath) .map(p -> new Path(null, p)).forEach(analyzer::addClassPath); rootClasses.forEach(analyzer::addRootClass); Set<String> parentSet = Stream.of(parentScanner.getIncludedFiles()) .collect(Collectors.toSet());
public void execute() throws BuildException { try { compileList.clear(); throw new BuildException(ERROR_BASE_NOT_SET, getLocation()); throw new BuildException(ERROR_NO_BASE_EXISTS + outputDir, getLocation()); throw new BuildException(ERROR_NOT_A_DIR + outputDir, getLocation()); loader = getProject().createClassLoader(classpath); scanDir(baseDir, ds.getIncludedFiles(), adapter.getMapper()); } else { compileList.add(classname); int fileCount = compileList.size(); if (fileCount > 0) { log("RMI Compiling " + fileCount + " class"
DirectoryScanner parentScanner = super.getDirectoryScanner(p); DependScanner scanner = new DependScanner(parentScanner); final Vector<String> allRootClasses = new Vector<>(rootClasses); for (FileSet additionalRootSet : rootFileSets) { DirectoryScanner additionalScanner = additionalRootSet.getDirectoryScanner(p); for (String file : additionalScanner.getIncludedFiles()) { if (file.endsWith(".class")) { String classFilePath = StringUtils.removeSuffix(file, ".class"); String className = classFilePath.replace('/', '.').replace('\\', '.'); allRootClasses.addElement(className); scanner.addBasedir(additionalRootSet.getDir(p));
final File savedDestDir = destDir; ResourceCollection savedRc = null; if (file == null && destFile != null && rcs.size() == 1) { savedRc = rcs.elementAt(0); final File fromDir = fs.getDir(getProject()); && ds.isEverythingIncluded() && !fs.hasPatterns()) { completeDirMap.put(fromDir, destDir); add(fromDir, ds.getIncludedFiles(), filesByBasedir); add(fromDir, ds.getIncludedDirectories(), dirsByBasedir); baseDirs.add(fromDir); } else { // not a fileset or contains non-file resources throw new BuildException( "Only FileSystem resources are supported."); throw new BuildException(message); destDir = savedDestDir; if (savedRc != null) { rcs.insertElementAt(savedRc, 0);
if (file == null && dir == null && filesets.isEmpty() && rcs == null) { throw new BuildException( "At least one of the file or dir attributes, or a nested resource collection, must be set."); throw new BuildException( "quiet and failonerror cannot both be set to true", getLocation()); implicit.setProject(getProject()); filesets.add(implicit); throw new BuildException("File or Resource without directory or file specified"); } else if (!fsDir.isDirectory()) { handle("Directory does not exist: " + fsDir); final String[] files = ds.getIncludedFiles(); resourcesToDelete.add(new ResourceCollection() { @Override if (includeEmpty) { filesetDirs.add(new ReverseDirs(getProject(), fsDir, ds.getIncludedDirectories())); String[] n = ds.getNotFollowedSymlinks(); if (n.length > 0) { String[] links = new String[n.length];
filesets[i].getDirectoryScanner(getProject()); if (rs instanceof ZipScanner) { ((ZipScanner) rs).setEncoding(encoding); final List<Resource> resources = new Vector<>(); if (!doFilesonly) { for (String d : rs.getIncludedDirectories()) { if (!d.isEmpty() || !skipEmptyNames) { resources.add(rs.getResource(d)); for (String f : rs.getIncludedFiles()) { if (!f.isEmpty() || !skipEmptyNames) { resources.add(rs.getResource(f));
throw new BuildException("destdir attribute must be set!", getLocation()); throw new BuildException("destination directory \"" + destDir + "\" does not exist or is not a directory", getLocation()); try (AntClassLoader al = getProject().createClassLoader(compilerClasspath)) { throw new BuildException("srcdir attribute must be set!", getLocation()); String[] list = src.list(); if (list.length == 0) { throw new BuildException("srcdir attribute must be set!", String[] files = ds.getIncludedFiles(); filecount = files.length; scanDir(srcDir, dest, mangler, files); log("compiling " + compileList.size() + " files", Project.MSG_VERBOSE); if (!compileList.isEmpty()) { log("Compiling " + compileList.size() + " source file" + (compileList.size() == 1 ? "" : "s") + " to "
/** Run the compiler. */ @Override public void execute() { if (src == null && filesets.size()==0) throw new BuildException("No file or fileset specified."); if (src != null) compile(src); Project myProject = getProject(); for (int i = 0; i < filesets.size(); i++) { FileSet fs = filesets.get(i); DirectoryScanner ds = fs.getDirectoryScanner(myProject); File dir = fs.getDir(myProject); String[] srcs = ds.getIncludedFiles(); for (int j = 0; j < srcs.length; j++) { compile(new File(dir, srcs[j])); } } }
private void collectFileListFromSourcePath() { for (String filename : src.list()) { final File srcDir = getProject().resolveFile(filename); if (!srcDir.exists()) { throw new BuildException("srcdir \"" + srcDir.getPath() + "\" does not exist!", getLocation()); } final DirectoryScanner ds = this.getDirectoryScanner(srcDir); scanDir(srcDir, destDir != null ? destDir : srcDir, ds.getIncludedFiles()); } }
/** * Runs Ant glob expansion. * * @return * A set of relative file names from the base directory. */ @Nonnull private static String[] glob(File dir, String includes, String excludes, boolean defaultExcludes) throws IOException { if(isAbsolute(includes)) throw new IOException("Expecting Ant GLOB pattern, but saw '"+includes+"'. See http://ant.apache.org/manual/Types/fileset.html for syntax"); FileSet fs = Util.createFileSet(dir,includes,excludes); fs.setDefaultexcludes(defaultExcludes); DirectoryScanner ds; try { ds = fs.getDirectoryScanner(new Project()); } catch (BuildException x) { throw new IOException(x.getMessage()); } String[] files = ds.getIncludedFiles(); return files; }
if (StringUtils.isNotBlank(ruleSets)) { configuration.setRuleSets(project.replaceProperties(ruleSets)); throw new BuildException(e.getMessage(), e); project.log("Setting suppress marker to be " + configuration.getSuppressMarker(), Project.MSG_VERBOSE); project.log("Sending a report to " + formatter, Project.MSG_VERBOSE); formatter.start(project.getBaseDir().toString()); DirectoryScanner ds = fs.getDirectoryScanner(project); String[] srcFiles = ds.getIncludedFiles(); for (String srcFile : srcFiles) { File file = new File(ds.getBasedir() + separator + srcFile); files.add(new FileDataSource(file)); final String inputPaths = ds.getBasedir().getPath(); configuration.setInputPaths(inputPaths); throw new BuildException("Stopping build since PMD found " + problemCount + " rule violations in the code");
int filesProcessed = 0; for (FileSet fs : filesets) { DirectoryScanner ds = fs.getDirectoryScanner(getProject()); for (String srcFile : ds.getIncludedFiles()) { try { File dest = FILE_UTILS.resolveFile(toDir, srcFile); File src = FILE_UTILS.resolveFile(ds.getBasedir(), srcFile); srcLastModified = src.lastModified(); throw new BuildException(ioe.getMessage(), getLocation());
String msg = "Failed to rename dir " + fromDir + " to " + toDir + " due to " + ioe.getMessage(); throw new BuildException(msg, ioe, getLocation()); FileSet fs = new FileSet(); fs.setProject(getProject()); fs.setDir(fromDir); addFileset(fs); DirectoryScanner ds = fs.getDirectoryScanner(getProject()); scan(fromDir, toDir, ds.getIncludedFiles(), ds.getIncludedDirectories());
private static void parseClassPath(Manifest manifest, File archive, List<File> paths, String attributeName, String separator) throws IOException { String classPath = manifest.getMainAttributes().getValue(attributeName); if(classPath==null) return; // attribute not found for (String s : classPath.split(separator)) { File file = resolve(archive, s); if(file.getName().contains("*")) { // handle wildcard FileSet fs = new FileSet(); File dir = file.getParentFile(); fs.setDir(dir); fs.setIncludes(file.getName()); for( String included : fs.getDirectoryScanner(new Project()).getIncludedFiles() ) { paths.add(new File(dir,included)); } } else { if(!file.exists()) throw new IOException("No such file: "+file); paths.add(file); } } }
private void collectFileListFromModulePath() { final FileUtils fu = FileUtils.getFileUtils(); for (String pathElement : moduleSourcepath.list()) { boolean valid = false; for (Map.Entry<String, Collection<File>> modules : resolveModuleSourcePathElement( getProject().getBaseDir(), pathElement).entrySet()) { final String moduleName = modules.getKey(); for (File srcDir : modules.getValue()) { if (srcDir.exists()) { valid = true; final DirectoryScanner ds = getDirectoryScanner(srcDir); final String[] files = ds.getIncludedFiles(); scanDir(srcDir, fu.resolveFile(destDir, moduleName), files); } } } if (!valid) { throw new BuildException("modulesourcepath \"" + pathElement + "\" does not exist!", getLocation()); } } }