public <T>Collection<T> load(File dir,Class<T> type){
  Set<T> logImporters=new HashSet<>();
  if (!dir.exists()) {
    return new ArrayList<>();
  }
  File[] files=dir.listFiles(null);
  logImporters.addAll(loadFromDir(dir,type));
  for (  File file : files) {
    logImporters.addAll(loadFromJar(file,type));
  }
  return logImporters;
}

public < T > Collection < T > load ( File dir , Class < T > type ) { Set < T > logImporters = new HashSet < > ( ) ; if ( ! dir . exists ( ) ) { return new ArrayList < > ( ) ; } File [ ] files = dir . listFiles ( null ) ; logImporters . addAll ( loadFromDir ( dir , type ) ) ; for ( File file : files ) { logImporters . addAll ( loadFromJar ( file , type ) ) ; } return logImporters ; }
load classes ( interface implementation ) from directory .
