private static GridUriDeploymentFileProcessorResult processNoDescriptorFile(File file,String uri,IgniteLogger log) throws IgniteSpiException {
  ClassLoader clsLdr=GridUriDeploymentClassLoaderFactory.create(U.gridClassLoader(),file,log);
  Set<Class<? extends ComputeTask<?,?>>> clss=GridUriDeploymentDiscovery.getClasses(clsLdr,file);
  GridUriDeploymentFileProcessorResult res=new GridUriDeploymentFileProcessorResult();
  res.setFile(file);
  res.setClassLoader(clsLdr);
  if (clss != null) {
    List<Class<? extends ComputeTask<?,?>>> validTasks=new ArrayList<>(clss.size());
    for (    Class<? extends ComputeTask<?,?>> cls : clss) {
      if (isAllowedTaskClass(cls)) {
        if (log.isDebugEnabled())         log.debug("Found grid deployment task: " + cls.getName());
        validTasks.add(cls);
      }
    }
    if (!validTasks.isEmpty())     res.setTaskClasses(validTasks);
 else     if (log.isDebugEnabled())     log.debug("No tasks loaded from file [file=" + file.getAbsolutePath() + ", uri="+ U.hidePassword(uri)+ ']');
  }
  return res;
}

private static GridUriDeploymentFileProcessorResult processNoDescriptorFile ( File file , String uri , IgniteLogger log ) throws IgniteSpiException { ClassLoader clsLdr = GridUriDeploymentClassLoaderFactory . create ( U . gridClassLoader ( ) , file , log ) ; Set < Class < ? extends ComputeTask < ? , ? > > > clss = GridUriDeploymentDiscovery . getClasses ( clsLdr , file ) ; GridUriDeploymentFileProcessorResult res = new GridUriDeploymentFileProcessorResult ( ) ; res . setFile ( file ) ; res . setClassLoader ( clsLdr ) ; if ( clss != null ) { List < Class < ? extends ComputeTask < ? , ? > > > validTasks = new ArrayList < > ( clss . size ( ) ) ; for ( Class < ? extends ComputeTask < ? , ? > > cls : clss ) { if ( isAllowedTaskClass ( cls ) ) { if ( log . isDebugEnabled ( ) ) log . debug ( "Found grid deployment task: " + cls . getName ( ) ) ; validTasks . add ( cls ) ; } } if ( ! validTasks . isEmpty ( ) ) res . setTaskClasses ( validTasks ) ; else if ( log . isDebugEnabled ( ) ) log . debug ( "No tasks loaded from file [file=" + file . getAbsolutePath ( ) + ", uri=" + U . hidePassword ( uri ) + ']' ) ; } return res ; }
processes gar files which have no descriptor . it scans every class and checks if it is a valid task or not . all valid tasks are returned back .
