private void createArchetypeFiles(Properties reverseProperties, List<FileSet> fileSets, String packageName, File basedir, File archetypeFilesDirectory, String defaultEncoding) throws IOException {
log.debug("Creating Archetype/Module files from " + basedir + " to " + archetypeFilesDirectory);
for (FileSet fileSet : fileSets) {
DirectoryScanner scanner = new DirectoryScanner();
scanner.setBasedir(basedir);
scanner.setIncludes(concatenateToList(fileSet.getIncludes(), fileSet.getDirectory()).toArray(new String[fileSet.getIncludes().size()]));
scanner.setExcludes(fileSet.getExcludes().toArray(new String[fileSet.getExcludes().size()]));
scanner.addDefaultExcludes();
log.debug("Using fileset " + fileSet);
scanner.scan();
List<String> fileSetResources = Arrays.asList(scanner.getIncludedFiles());
log.debug("Scanned " + fileSetResources.size() + " resources");
if (fileSet.isFiltered()) {
processFileSet(basedir, archetypeFilesDirectory, fileSet.getDirectory(), fileSetResources, fileSet.isPackaged(), packageName, reverseProperties, defaultEncoding);
log.debug("Processed " + fileSet.getDirectory() + " files");
}
else {
copyFiles(basedir, archetypeFilesDirectory, fileSet.getDirectory(), fileSetResources, fileSet.isPackaged(), packageName);
log.debug("Copied " + fileSet.getDirectory() + " files");
}
}
}