docs: static void copyFilesIntoOutputDirectory(
  			CopyResourcesMojo copyResourcesMojo, File sourceFolder,
  			File destinationFolder, Resource resource, boolean isFlatten)
  			throws InvalidSourceException, IOException {
  		// check
  		if (sourceFolder.isFile()) {
  			throw new InvalidSourceException(
  					"Expected folder as source, not a file : '" + sourceFolder
  							+ "'");
  		}
  		if (destinationFolder.isFile()) {
  			throw new InvalidSourceException("Expected destination as source");
  		}
  		copyResourcesMojo.getLog().debug(
  				"Find file into '" + sourceFolder + "'");
  		// find files into source folder
  		Set<String> files = findFiles(sourceFolder);
  		copyResourcesMojo.getLog().debug("files before processing :" + files);
  		// process with optional include/exclude options
  		files = processIncludeExclude(copyResourcesMojo, resource, files);
  
  		if (files != null) {
  			for (String file : files) {
  				// source
  				BufferedInputStream reader = new BufferedInputStream(
  						new FileInputStream(file));
  				// destination
  				StringBuilder finalFile = buildAbsoluteFinalFile(file,
  						sourceFolder.getAbsolutePath(), destinationFolder,
  						isFlatten);
  
  				// prepare writer
  				FileUtils.createIntermediateFolders(String.valueOf(finalFile));
  
  				BufferedOutputStream writer = new BufferedOutputStream(
  						new FileOutputStream(finalFile.toString(), false));
  
  				// copy
  				try {
  					FileUtils.writeFile(reader, writer);
  				} catch (IOException e) {
  					throw e;
  				} finally {
  					// close all
  					writer.close();
  					reader.close();
  				}
  			}
  			copyResourcesMojo.getLog().info(
  					files.size() + " files in outputDirectory.");
  		}
  	}