Author: scabanovich
Date: 2011-12-13 18:50:33 -0500 (Tue, 13 Dec 2011)
New Revision: 37300
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDICoreBuilder.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDICoreNature.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIProjectTree.java
Log:
JBIDE-10330
https://issues.jboss.org/browse/JBIDE-10330
Provided loading of stored project dependencies at Eclipse restart.
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDICoreBuilder.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDICoreBuilder.java 2011-12-13
23:25:46 UTC (rev 37299)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDICoreBuilder.java 2011-12-13
23:50:33 UTC (rev 37300)
@@ -30,6 +30,7 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IClassFile;
import org.eclipse.jdt.core.IClasspathEntry;
@@ -77,14 +78,31 @@
Set<IBuildParticipantFeature> buildParticipants = null;
Set<IBuildParticipant2Feature> buildParticipants2 = null;
+ /**
+ * Set only for instance created to initially load cdi model.
+ */
+ CDICoreNature cdi;
+
public CDICoreBuilder() {}
+ public CDICoreBuilder(CDICoreNature cdi) throws CoreException {
+ this.cdi = cdi;
+ build(IncrementalProjectBuilder.FULL_BUILD, null, new NullProgressMonitor());
+ }
+
CDICoreNature getCDICoreNature() {
+ if(cdi != null) {
+ return cdi;
+ }
IProject p = getProject();
if(p == null) return null;
return CDICorePlugin.getCDI(p, false);
}
+ IProject getCurrentProject() {
+ return cdi != null ? cdi.getProject() : getProject();
+ }
+
CDIResourceVisitor getResourceVisitor() {
if(resourceVisitor == null) {
resourceVisitor = new CDIResourceVisitor();
@@ -96,7 +114,7 @@
Set<ICDIBuilderDelegate> ds = getDelegates();
int relevance = 0;
for (ICDIBuilderDelegate d: ds) {
- int r = d.computeRelevance(getProject());
+ int r = d.computeRelevance(getCurrentProject());
if(r > relevance) {
builderDelegate = d;
relevance = r;
@@ -199,7 +217,7 @@
if (kind == FULL_BUILD) {
fullBuild(monitor);
} else {
- IResourceDelta delta = getDelta(getProject());
+ IResourceDelta delta = getDelta(getCurrentProject());
if (delta == null) {
fullBuild(monitor);
} else {
@@ -233,7 +251,7 @@
try {
CDIResourceVisitor rv = getResourceVisitor();
rv.incremental = false;
- getProject().accept(rv);
+ getCurrentProject().accept(rv);
FileSet fs = rv.fileSet;
invokeBuilderDelegates(fs, getCDICoreNature());
@@ -305,7 +323,7 @@
}
void addBasicTypes(FileSet fs) throws CoreException {
- IJavaProject jp = EclipseResourceUtil.getJavaProject(getProject());
+ IJavaProject jp = EclipseResourceUtil.getJavaProject(getCurrentProject());
if(jp == null) return;
for (String s: AnnotationHelper.SCOPE_ANNOTATION_TYPES) {
IType type = EclipseJavaUtil.findType(jp, s);
@@ -388,8 +406,8 @@
Set<IPath> visited = new HashSet<IPath>();
CDIResourceVisitor() {
- webinfs = WebUtils.getWebInfPaths(getProject());
- getJavaSourceRoots(getProject());
+ webinfs = WebUtils.getWebInfPaths(getCurrentProject());
+ getJavaSourceRoots(getCurrentProject());
}
void getJavaSourceRoots(IProject project) {
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDICoreNature.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDICoreNature.java 2011-12-13
23:25:46 UTC (rev 37299)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDICoreNature.java 2011-12-13
23:50:33 UTC (rev 37300)
@@ -388,7 +388,7 @@
isStorageResolved = true;
}
try {
- getProject().build(IncrementalProjectBuilder.FULL_BUILD, CDICoreBuilder.BUILDER_ID,
new HashMap(), new NullProgressMonitor());
+ new CDICoreBuilder(this);
} catch (CoreException e) {
CDICorePlugin.getDefault().logError(e);
}
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2011-12-13
23:25:46 UTC (rev 37299)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2011-12-13
23:50:33 UTC (rev 37300)
@@ -1110,7 +1110,7 @@
return scopesByPath.get(path);
}
- public void update(boolean updateDependent) {
+ public synchronized void update(boolean updateDependent) {
rebuildXML();
rebuildAnnotationTypes();
rebuildBeans();
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIProjectTree.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIProjectTree.java 2011-12-13
23:25:46 UTC (rev 37299)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIProjectTree.java 2011-12-13
23:50:33 UTC (rev 37300)
@@ -69,6 +69,11 @@
rootContext = root.getValidationContext();
}
requiredProjects.add(root.getProject());
+
+ for (IProject p: requiredProjects) {
+ CDICorePlugin.getCDI(p, true); //all should be active.
+ }
+
IValidatingProjectSet brunch = new ValidatingProjectSet(root.getProject(),
requiredProjects, rootContext);
brunches.put(rootProject, brunch);
allProjects.addAll(brunch.getAllProjects());