Author: scabanovich
Date: 2011-06-09 20:23:02 -0400 (Thu, 09 Jun 2011)
New Revision: 31997
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbResourceVisitor.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/JSF2ResourcesScanner.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/LibraryScanner.java
Log:
JBIDE-9088
https://issues.jboss.org/browse/JBIDE-9088
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbResourceVisitor.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbResourceVisitor.java 2011-06-09
23:19:41 UTC (rev 31996)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbResourceVisitor.java 2011-06-10
00:23:02 UTC (rev 31997)
@@ -2,6 +2,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
@@ -152,14 +153,18 @@
if (jsf2resourcesFolder == null || jsf2resourcesProcessed) return;
jsf2resourcesProcessed = true;
JSF2ResourcesScanner scanner = new JSF2ResourcesScanner();
- LoadedDeclarations c = null;
+ Map<IPath,LoadedDeclarations> result = null;
try {
- c = scanner.parse((IFolder) jsf2resourcesFolder, p);
+ result = scanner.parse((IFolder) jsf2resourcesFolder, p);
} catch (ScannerException e) {
WebKbPlugin.getDefault().logError(e);
}
- if (c != null)
- componentsLoaded(c, jsf2resourcesFolder);
+ if (result != null) {
+ for (IPath path: result.keySet()) {
+ LoadedDeclarations c = result.get(path);
+ p.registerComponents(c, path);
+ }
+ }
}
void componentsLoaded(LoadedDeclarations c, IResource resource) {
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/JSF2ResourcesScanner.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/JSF2ResourcesScanner.java 2011-06-09
23:19:41 UTC (rev 31996)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/JSF2ResourcesScanner.java 2011-06-10
00:23:02 UTC (rev 31997)
@@ -1,5 +1,8 @@
package org.jboss.tools.jst.web.kb.internal.scanner;
+import java.util.HashMap;
+import java.util.Map;
+
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
@@ -54,29 +57,34 @@
return null;
}
- public LoadedDeclarations parse(IFolder f, IKbProject sp) throws ScannerException {
+ public Map<IPath, LoadedDeclarations> parse(IFolder f, IKbProject sp) throws
ScannerException {
XModel model = InnerModelHelper.createXModel(f.getProject());
if(model == null) return null;
XModelObject o = EclipseResourceUtil.getObjectByResource(model, f);
- return parse(o, f.getFullPath(), sp);
+ return parse(o, f.getFullPath(), sp, false);
}
//XModelObject must represent folder named 'resources' under web root.
- public LoadedDeclarations parse(XModelObject o, IPath source, IKbProject sp) {
+ public Map<IPath, LoadedDeclarations> parse(XModelObject o, IPath source,
IKbProject sp, boolean lib) {
if(o == null) return null;
-
- LoadedDeclarations ds = new LoadedDeclarations();
- processFolder(o, ds, source, URI_PREFIX);
- return ds;
+ Map<IPath, LoadedDeclarations> result = new HashMap<IPath,
LoadedDeclarations>();
+ processFolder(o, result, source, URI_PREFIX, lib);
+ return result;
}
- void processFolder(XModelObject o, LoadedDeclarations ds, IPath source, String
uriPrefix) {
+ void processFolder(XModelObject o, Map<IPath, LoadedDeclarations> result, IPath
source, String uriPrefix, boolean lib) {
+ LoadedDeclarations ds = result.get(source);
+ if(ds == null) {
+ ds = new LoadedDeclarations();
+ result.put(source, ds);
+ }
CompositeTagLibrary library = null;
XModelObject[] cs = o.getChildren();
for (XModelObject c: cs) {
if(c.getFileType() == XModelObject.FOLDER) {
String n = c.getAttributeValue(XModelObjectConstants.ATTR_NAME);
- processFolder(c, ds, source, uriPrefix + "/" + n); //$NON-NLS-1$
+ IPath source1 = lib ? source : source.append(n);
+ processFolder(c, result, source1, uriPrefix + "/" + n, lib); //$NON-NLS-1$
}
String entity = c.getModelEntity().getName();
if(ENT_COMPOSITE_COMPONENT.equals(entity)) {
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/LibraryScanner.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/LibraryScanner.java 2011-06-09
23:19:41 UTC (rev 31996)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/LibraryScanner.java 2011-06-10
00:23:02 UTC (rev 31997)
@@ -10,6 +10,8 @@
******************************************************************************/
package org.jboss.tools.jst.web.kb.internal.scanner;
+import java.util.Map;
+
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.IPath;
import org.jboss.tools.common.model.XModel;
@@ -96,8 +98,8 @@
}
if(tld.getFileType() == XModelObject.FOLDER &&
tld.getAttributeValue(XModelObjectConstants.ATTR_NAME).equals("resources")) {
//$NON-NLS-1$
JSF2ResourcesScanner s = new JSF2ResourcesScanner();
- LoadedDeclarations ds1 = s.parse(tld, path, sp);
- if(ds1 != null) ds.add(ds1);
+ Map<IPath,LoadedDeclarations> ds1 = s.parse(tld, path, sp, true);
+ if(ds1 != null && ds1.size() > 0)
ds.add(ds1.values().iterator().next());
} else if(isMyFacesMetadata(tld)) {
MyFacesScanner s = new MyFacesScanner();
LoadedDeclarations ds1 = s.parse(tld, path, sp);