Author: scabanovich
Date: 2009-02-03 08:44:23 -0500 (Tue, 03 Feb 2009)
New Revision: 13447
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCoreBuilder.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamProject.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/scanner/lib/ClassPath.java
Log:
JBIDE-3725
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCoreBuilder.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCoreBuilder.java 2009-02-03
06:28:53 UTC (rev 13446)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCoreBuilder.java 2009-02-03
13:44:23 UTC (rev 13447)
@@ -90,6 +90,8 @@
if(sp.getClassPath().update()) {
sp.getClassPath().process();
+ } else if(sp.getClassPath().hasToUpdateProjectDependencies()) {
+ sp.getClassPath().validateProjectDependencies();
}
TypeInfoCollector.cleanCache();
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamProject.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamProject.java 2009-02-03
06:28:53 UTC (rev 13446)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamProject.java 2009-02-03
13:44:23 UTC (rev 13447)
@@ -327,7 +327,7 @@
IPath[] ps = sourcePaths2.keySet().toArray(new IPath[0]);
for (int i = 0; i < ps.length; i++) {
IPath pth = ps[i];
- if(p.getSourcePath().isPrefixOf(pth)) {
+ if(p.getSourcePath().isPrefixOf(pth) || (p.isPathLoaded(pth) &&
!pth.toString().endsWith(".jar"))) {
pathRemoved(pth);
}
}
@@ -1011,6 +1011,10 @@
fireChanges(changes);
}
+ public boolean isPathLoaded(IPath source) {
+ return sourcePaths2.containsKey(source);
+ }
+
/**
* Package local method called by builder.
* @param source
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/scanner/lib/ClassPath.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/scanner/lib/ClassPath.java 2009-02-03
06:28:53 UTC (rev 13446)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/scanner/lib/ClassPath.java 2009-02-03
13:44:23 UTC (rev 13447)
@@ -225,6 +225,30 @@
}
}
+ public boolean hasToUpdateProjectDependencies() {
+ List<SeamProject> ps = null;
+
+ try {
+ ps = getSeamProjects(project.getProject());
+ } catch (CoreException e) {
+ SeamCorePlugin.getPluginLog().logError(e);
+ }
+ if(ps != null) {
+ Set<SeamProject> set = project.getSeamProjects();
+ Set<SeamProject> removable = new HashSet<SeamProject>();
+ removable.addAll(set);
+ removable.removeAll(ps);
+ ps.removeAll(set);
+ for (SeamProject p : ps) {
+ return true;
+ }
+ for (SeamProject p : removable) {
+ return true;
+ }
+ }
+ return false;
+ }
+
void componentsLoaded(LoadedDeclarations c, IPath path) {
if(c == null) return;
project.registerComponents(c, path);