Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/FaceletTagIndex.java')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/FaceletTagIndex.java44
1 files changed, 33 insertions, 11 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/FaceletTagIndex.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/FaceletTagIndex.java
index cdef395f4..f4bc54abe 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/FaceletTagIndex.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/FaceletTagIndex.java
@@ -17,8 +17,9 @@ import java.util.concurrent.CopyOnWriteArrayList;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.jst.j2ee.model.ModelProviderManager;
-import org.eclipse.jst.jsf.common.internal.componentcore.AbstractVirtualComponentQuery.DefaultVirtualComponentQuery;
+import org.eclipse.jst.jsf.common.internal.componentcore.AbstractCompCoreQueryFactory;
+import org.eclipse.jst.jsf.common.internal.componentcore.AbstractJEEModelProviderQuery;
+import org.eclipse.jst.jsf.common.internal.componentcore.AbstractVirtualComponentQuery;
import org.eclipse.jst.jsf.common.internal.finder.AbstractMatcher.AlwaysMatcher;
import org.eclipse.jst.jsf.common.internal.locator.AbstractLocatorProvider;
import org.eclipse.jst.jsf.common.internal.locator.AbstractLocatorProvider.DefaultLocatorProvider;
@@ -33,6 +34,7 @@ import org.eclipse.jst.jsf.common.internal.strategy.ISimpleStrategy;
import org.eclipse.jst.jsf.designtime.internal.resources.IJSFResourceLocator;
import org.eclipse.jst.jsf.designtime.internal.resources.JarBasedJSFResourceLocator;
import org.eclipse.jst.jsf.designtime.internal.resources.WorkspaceJSFResourceLocator;
+import org.eclipse.jst.jsf.facelet.core.internal.FaceletCorePlugin;
/**
* @author cbateman
@@ -172,9 +174,11 @@ public class FaceletTagIndex extends
{
final List<AbstractFaceletTaglibLocator> locators = new ArrayList<AbstractFaceletTaglibLocator>();
locators.add(new JarFileFaceletTaglibLocator(factory));
- locators.add(new ContextParamSpecifiedFaceletTaglibLocator(project,
- factory, ModelProviderManager.getModelProvider(project),
- new DefaultVirtualComponentQuery(), new WorkspaceMediator()));
+ ContextParamSpecifiedFaceletTaglibLocator createContextParamSpecific = createContextParamSpecific(project, factory);
+ if (createContextParamSpecific != null)
+ {
+ locators.add(createContextParamSpecific);
+ }
final List<IJSFResourceLocator> resourceLocators = new ArrayList<IJSFResourceLocator>();
resourceLocators
.add(new JarBasedJSFResourceLocator(Collections.EMPTY_LIST,
@@ -183,12 +187,7 @@ public class FaceletTagIndex extends
.singletonList(new AlwaysMatcher()),
new JavaCoreMediator()),
new ContentTypeResolver()));
- final IWorkspace workspace = project.getWorkspace();
- resourceLocators.add(new WorkspaceJSFResourceLocator(
- Collections.EMPTY_LIST,
- new CopyOnWriteArrayList<ILocatorChangeListener>(),
- new DefaultVirtualComponentQuery(),
- new ContentTypeResolver(), workspace));
+ resourceLocators.add(createJsfResourceLocator(project));
final DefaultLocatorProvider<IJSFResourceLocator> resourceLocatorProvider = new DefaultLocatorProvider<IJSFResourceLocator>(
resourceLocators);
locators.add(new CompositeComponentTaglibLocator(
@@ -196,6 +195,29 @@ public class FaceletTagIndex extends
final LocatorProvider provider = new LocatorProvider(locators);
return new ProjectTaglibDescriptor(project, factory, provider);
}
+
+ private WorkspaceJSFResourceLocator createJsfResourceLocator(final IProject project) {
+ return new WorkspaceJSFResourceLocator(
+ Collections.EMPTY_LIST,
+ new CopyOnWriteArrayList<ILocatorChangeListener>(),
+ FaceletCorePlugin.getDefault().getCompCoreQueryFactory().createVirtualComponentQuery(project),
+ new ContentTypeResolver(), project.getWorkspace());
+ }
+
+ private ContextParamSpecifiedFaceletTaglibLocator createContextParamSpecific(final IProject project,
+ final TagRecordFactory factory) {
+ AbstractCompCoreQueryFactory compCoreQueryFactory = FaceletCorePlugin.getDefault()
+ .getCompCoreQueryFactory();
+ AbstractJEEModelProviderQuery modelProviderQuery = compCoreQueryFactory
+ .createJEEModelProviderQuery(project);
+ AbstractVirtualComponentQuery virtualComponentQuery = compCoreQueryFactory
+ .createVirtualComponentQuery(project);
+ if (modelProviderQuery != null && virtualComponentQuery != null) {
+ return new ContextParamSpecifiedFaceletTaglibLocator(project, factory, modelProviderQuery,
+ virtualComponentQuery, new WorkspaceMediator());
+ }
+ return null;
+ }
}
/**

Back to the top