private List<NamedReader> getFiles(Path relativePath, String namePrefix, String suffix, boolean recurse) {
        try {
            List<NamedReader> readers=new ArrayList<>();
            File dir = applicationFile(appDir, relativePath);
            if ( ! dir.isDirectory()) return readers;

            File[] files = dir.listFiles();
            if (files != null) {
                for (File file : files) {
                    if (file.isDirectory()) {
                        if (recurse)
                            readers.addAll(getFiles(relativePath.append(file.getName()), namePrefix + "/" + file.getName(), suffix, recurse));
                    } else {
                        if (suffix == null || file.getName().endsWith(suffix))
                            readers.add(new NamedReader(file.getName(), new FileReader(file)));
                    }
                }
            }
            return readers;
        }
        catch (IOException e) {
            throw new RuntimeException("Could not open (all) files in '" + relativePath + "'",e);
        }
    }
New package from given path on local file system. Retrieves config definition files from
the default location '$VESPA_HOME/share/vespa/configdefinitions'.

@param appDir application package directory
@param preprocessedDir preprocessed application package output directory
@param metaData metadata for this application package
@param includeSourceFiles include files from source dirs
config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java