protected FS createFileSystem(String[] pathPatterns, String[] filterPatterns) {
   Assert.notNull(pathPatterns, "PathPatterns must not be null");
   Assert.notNull(filterPatterns, "FilterPatterns must not be null");
   FS fileSystem = new FS();
   for (String pathPattern : pathPatterns) {
     try {
       fileSystem.mount(
           new SimpleFileSystemDriver(
               new DirectoryHandle(pathPattern, this.resourceLoader, filterPatterns)));
     } catch (IOException ex) {
       throw new IllegalStateException(
           "Failed to mount file system for '" + pathPattern + "'", ex);
     }
   }
   return fileSystem;
 }
    protected boolean isEnabled(CRaSHPlugin<?> plugin) {
      Assert.notNull(plugin, "Plugin must not be null");

      if (ObjectUtils.isEmpty(this.disabledPlugins)) {
        return true;
      }

      Set<Class<?>> pluginClasses = ClassUtils.getAllInterfacesAsSet(plugin);
      pluginClasses.add(plugin.getClass());

      for (Class<?> pluginClass : pluginClasses) {
        if (isEnabled(pluginClass)) {
          return true;
        }
      }
      return false;
    }