docs: private void copyResources( List fileSets )
          throws MojoExecutionException
      {
          final String[] emptyStrArray = {};
          
          for ( Iterator it = fileSets.iterator(); it.hasNext(); )
          {
              FileSet fileSet = (FileSet) it.next();
  
              File resourceDirectory = new File( fileSet.getDirectory() );
              if ( !resourceDirectory.isAbsolute() )
              {
                  resourceDirectory = new File( project.getBasedir(), resourceDirectory.getPath() );
              }
  
              if ( !resourceDirectory.exists() )
              {
                  getLog().info( "Additional resource directory does not exist: " + resourceDirectory );
                  continue;
              }
  
              DirectoryScanner scanner = new DirectoryScanner();
  
              scanner.setBasedir( resourceDirectory );
              if ( fileSet.getIncludes() != null && !fileSet.getIncludes().isEmpty() )
              {
                  scanner.setIncludes( (String[]) fileSet.getIncludes().toArray( emptyStrArray ) );
              }
              else
              {
                  scanner.setIncludes( DEFAULT_INCLUDES );
              }
  
              if ( fileSet.getExcludes() != null && !fileSet.getExcludes().isEmpty() )
              {
                  scanner.setExcludes( (String[]) fileSet.getExcludes().toArray( emptyStrArray ) );
              }
  
              if (fileSet.isUseDefaultExcludes())
              {
                  scanner.addDefaultExcludes();
              }
  
              scanner.scan();
  
              List includedFiles = Arrays.asList( scanner.getIncludedFiles() );
  
              getLog().info( "Copying " + includedFiles.size() + " additional resource"
                             + ( includedFiles.size() > 1 ? "s" : "" ) );
  
              for ( Iterator j = includedFiles.iterator(); j.hasNext(); )
              {
                  String destination = (String) j.next();
                  File source = new File( resourceDirectory, destination );
                  File destinationFile = new File( buildDirectory, destination );
  
                  if ( !destinationFile.getParentFile().exists() )
                  {
                      destinationFile.getParentFile().mkdirs();
                  }
  
                  try
                  {
                      FileUtils.copyFile(source, destinationFile);
                  }
                  catch ( IOException e )
                  {
                      throw new MojoExecutionException( "Error copying additional resource " + source, e );
                  }
              }
          }
      }