private void verifyAppDir(File appDir) {
        Objects.requireNonNull(appDir, "Path cannot be null");
        if ( ! appDir.exists()) {
            throw new IllegalArgumentException("Path '" + appDir + "' does not exist");
        }
        if ( ! appDir.isDirectory()) {
            throw new IllegalArgumentException("Path '" + appDir + "' is not a directory");
        }
        if (! appDir.canRead()){
            throw new IllegalArgumentException("Cannot read from application directory '" + appDir + "'");
        }
    }
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