### Eclipse Workspace Patch 1.0 #P org.eclipse.jst.j2ee Index: j2eeplugin/org/eclipse/jst/j2ee/internal/deploy/J2EEDeployOperation.java =================================================================== RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deploy/J2EEDeployOperation.java,v retrieving revision 1.19.10.2.4.2 diff -u -r1.19.10.2.4.2 J2EEDeployOperation.java --- j2eeplugin/org/eclipse/jst/j2ee/internal/deploy/J2EEDeployOperation.java 13 Aug 2010 02:29:52 -0000 1.19.10.2.4.2 +++ j2eeplugin/org/eclipse/jst/j2ee/internal/deploy/J2EEDeployOperation.java 17 Aug 2010 19:43:26 -0000 @@ -63,6 +63,7 @@ private IProject currentProject; private boolean wasAutoBuilding; private Set affectedProjects; + private boolean isAllDeployersProvideAffectedProjects = false; /** * @@ -152,6 +153,7 @@ */ private void deploy(List visitors, IVirtualComponent component, IProgressMonitor monitor) { IProject proj = component.getProject(); + boolean curIsAllDeployersProvideAffectedProjects = true; for (int i = 0; i < visitors.size(); i++) { if (!(visitors.get(i) instanceof IConfigurationElement)) continue; @@ -182,6 +184,10 @@ if (changedProjects != null) { this.affectedProjects.addAll(changedProjects); } + } else { + // There is at least one deployer does not implements the new ICommand2 interface. Therfore, + // not all deployers have affected projects. + curIsAllDeployersProvideAffectedProjects = false; } addOKStatus(dep.getClass().getName()); } catch (CoreException ex) { @@ -191,6 +197,7 @@ continue; } } + isAllDeployersProvideAffectedProjects = curIsAllDeployersProvideAffectedProjects; } /** @@ -284,4 +291,14 @@ return this.affectedProjects; } + + /** + * Check if all deployers provide affected projects information. This method will help the + * caller to decide whether to use the affect project information or not. + * @return true if all deployers provides the affected projects list; otherwise, return false. + */ + public boolean isAllDeployersProvideAffectedProjects() { + return isAllDeployersProvideAffectedProjects; + } + } \ No newline at end of file