private IProject[] getAllReferencedProjects(IProject project, Set visitedProjects) { if (visitedProjects == null) visitedProjects = new HashSet(); else if (visitedProjects.contains(project)) return getReferencedProjects(); else visitedProjects.add(project); if (referencedProjects == null) referencedProjects = new ArrayList(); try { if (project.isAccessible()) { IProject[] refProjArray = project.getReferencedProjects(); collectReferecedProject(refProjArray); for (int i = 0; i < refProjArray.length; i++) { IProject refProject = refProjArray[i]; getAllReferencedProjects(refProject, visitedProjects); } } return getReferencedProjects(); } catch (CoreException core) { return null; } }
private boolean isReferencedProjectInDelta(IProject[] referenced) { IProject p = null; for (int i = 0; i < referenced.length; i++) { p = referenced[i]; IResourceDelta delta = getDelta(p); if (delta != null && delta.getAffectedChildren().length > 0) return true; } return false; }
private void performFullBuildForReferencedProjectChanged(IProgressMonitor monitor, ProjectConfiguration prjp) throws InvocationTargetException { performFullBuild(monitor, prjp, true); }
Logger logger = ValidationPlugin.getPlugin().getMsgLogger(); IResourceDelta delta = null; IProject project = getProject(); IProject[] referenced = getAllReferencedProjects(project, null); try { if (ValidatorManager.getManager().isSuspended(project)) { delta = getDelta(project); boolean doFullBuild = (kind == FULL_BUILD); if (isReferencedProjectInDelta(referenced)) { performFullBuildForReferencedProjectChanged(monitor, prjp); } else { String[] msgParms = new String[]{project.getName()}; performFullBuild(monitor, prjp); } else { if (isReferencedProjectInDelta(referenced)) performFullBuildForReferencedProjectChanged(monitor, prjp); else executionMap |= 0x10; logInvocationTargetException(logger, exc); executionMap |= 0x20; return referenced; } catch (Exception exc) { logBuildError(logger, exc); executionMap |= 0x40;
public IWorkbenchContext getWorkbenchContext() { if(workbenchContext == null) { workbenchContext = new WorkbenchContext(); workbenchContext.setProject(getProject()); } return workbenchContext; }
private void performFullBuild(IProgressMonitor monitor, ProjectConfiguration prjp, boolean onlyDependentValidators) throws InvocationTargetException { ValidatorMetaData[] enabledValidators = prjp.getEnabledFullBuildValidators(true, onlyDependentValidators); if ((enabledValidators != null) && (enabledValidators.length > 0)) { Set enabledValidatorsSet = InternalValidatorManager.wrapInSet(enabledValidators); EnabledValidatorsOperation op = new EnabledValidatorsOperation(getProject(), enabledValidatorsSet, true); op.run(monitor); } }
private void logBuilderTimeEntry(long start, int executionMap, Logger logger, IResourceDelta delta) { TimeEntry entry = ValidationPlugin.getTimeEntry(); entry.setSourceID("ValidationBuilder.build(int, Map, IProgressMonitor)"); //$NON-NLS-1$ entry.setProjectName(getProject().getName()); //$NON-NLS-1$ //$NON-NLS-2$ entry.setExecutionMap(executionMap); entry.setElapsedTime(System.currentTimeMillis() - start); if (delta == null) { entry.setDetails("delta == null"); //$NON-NLS-1$ } entry.setToolName("ValidationBuilder"); //$NON-NLS-1$ logger.write(Level.FINE, entry); } }
private void performFullBuild(IProgressMonitor monitor, ProjectConfiguration prjp) throws InvocationTargetException { performFullBuild(monitor, prjp, false); }
protected void clean(IProgressMonitor monitor) throws CoreException { IProject currentProject = getProject(); if (currentProject == null || !currentProject.isAccessible()) return; try { ProjectConfiguration prjp = ConfigurationManager.getManager().getProjectConfiguration(currentProject); ValidatorMetaData[] vmds = prjp.getValidators(); for (int i = 0; i < vmds.length; i++) { ValidatorMetaData vmd = vmds[i]; // For validators who aren't going to run, clear their messages from the task list. // Don't need to check for duplicate entries because each Validator must be unique. // The uniqueness of each Validator is checked by the plugin registry. WorkbenchReporter.removeAllMessages(currentProject, vmd.getValidatorNames(), null); } } catch (InvocationTargetException exc) { Logger logger = ValidationPlugin.getPlugin().getMsgLogger(); if (logger.isLoggingLevel(Level.SEVERE)) { LogEntry entry = ValidationPlugin.getLogEntry(); entry.setSourceIdentifier("ValidatorManager.updateTaskList(" + currentProject.getName() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ entry.setTargetException(exc); logger.write(Level.SEVERE, entry); if (exc.getTargetException() != null) { entry.setTargetException(exc); logger.write(Level.SEVERE, entry); } } } }