private void geppettoValidation(Collection<File> moduleLocations, Diagnostic result) throws IOException { Collection<File> importedModuleLocations = null; List<Metadata> metadatas = new ArrayList<Metadata>(); for (File moduleRoot : moduleLocations) { Metadata md = getModuleMetadata(moduleRoot, result); if (md != null) metadatas.add(md); } if (result.getSeverity() == Diagnostic.ERROR) return; if (checkModuleSemantics) { File importedModulesDir = new File(getBuildDir(), IMPORTED_MODULES_ROOT); importedModuleLocations = getForge().downloadDependencies(metadatas, importedModulesDir, result); } if (importedModuleLocations == null) importedModuleLocations = Collections.emptyList(); RubyHelper.setRubyServicesFactory(JRubyServices.FACTORY); ValidationOptions options = getValidationOptions(moduleLocations, importedModuleLocations); new PPDiagnosticsSetup(complianceLevel, options.getProblemsAdvisor()) .createInjectorAndDoEMFRegistration(); getValidationService() .validate( result, getModulesDir(), options, importedModuleLocations.toArray(new File[importedModuleLocations.size()]), new NullProgressMonitor()); }
@Override protected void addModules(Diagnostic diagnostic, List<Module> modules) { super.addModules(diagnostic, modules); if (cacheLocation != null && diagnostic.getSeverity() <= Diagnostic.WARNING) modules.add( new AbstractModule() { @Override protected void configure() { bind(File.class) .annotatedWith(Names.named(Forge.CACHE_LOCATION)) .toInstance(new File(cacheLocation)); } }); }