public static void extractFilesUsingFilter(File archive, File destination, FilenameFilter filter) throws ExtractionException {
        if (archive == null || destination == null) {
            return;
        }

        try (FileInputStream fis = new FileInputStream(archive)) {
            extractArchive(new ZipArchiveInputStream(new BufferedInputStream(fis)), destination, filter);
        } catch (FileNotFoundException ex) {
            final String msg = String.format("Error extracting file `%s` with filter: %s", archive.getAbsolutePath(), ex.getMessage());
            LOGGER.debug(msg, ex);
            throw new ExtractionException(msg);
        } catch (IOException | ArchiveExtractionException ex) {
            LOGGER.warn("Exception extracting archive '{}'.", archive.getAbsolutePath());
            LOGGER.debug("", ex);
            throw new ExtractionException("Unable to extract from archive", ex);
        }
    }
public static void extractFilesUsingFilter ( File archive , File destination , FilenameFilter filter ) throws ExtractionException { if ( archive == null || destination == null ) { return ; } try ( FileInputStream fis = new FileInputStream ( archive ) ) { extractArchive ( new ZipArchiveInputStream ( new BufferedInputStream ( fis ) ) , destination , filter ) ; } catch ( FileNotFoundException ex ) { final String msg = String . format ( "Error extracting file `%s` with filter: %s" , archive . getAbsolutePath ( ) , ex . getMessage ( ) ) ; LOGGER . debug ( msg , ex ) ; throw new ExtractionException ( msg ) ; } catch ( IOException | ArchiveExtractionException ex ) { LOGGER . warn ( "Exception extracting archive '{}'." , archive . getAbsolutePath ( ) ) ; LOGGER . debug ( "" , ex ) ; throw new ExtractionException ( "Unable to extract from archive" , ex ) ; } }
Extracts the contents of an archive into the specified directory.

@param archive an archive file such as a WAR or EAR
@param destination a directory to extract the contents to
@param filter determines which files get extracted
@throws ExtractionException thrown if the archive is not found