Skip to main content
summaryrefslogtreecommitdiffstats
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/WebappConfiguration.java')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/WebappConfiguration.java400
1 files changed, 0 insertions, 400 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/WebappConfiguration.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/WebappConfiguration.java
deleted file mode 100644
index e0117c8e7..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/WebappConfiguration.java
+++ /dev/null
@@ -1,400 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Cameron Bateman - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jst.j2ee.model.IModelProvider;
-import org.eclipse.jst.javaee.web.IWebCommon;
-import org.eclipse.jst.jsf.common.internal.componentcore.AbstractVirtualComponentQuery;
-import org.eclipse.jst.jsf.common.internal.resource.EventResult;
-import org.eclipse.jst.jsf.common.internal.resource.IResourceLifecycleListener;
-import org.eclipse.jst.jsf.common.internal.resource.LifecycleListener;
-import org.eclipse.jst.jsf.common.internal.resource.ResourceLifecycleEvent;
-import org.eclipse.jst.jsf.common.internal.resource.ResourceLifecycleEvent.EventType;
-import org.eclipse.jst.jsf.common.internal.resource.WorkspaceMediator;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.WebappConfiguration.WebappListener.WebappChangeEvent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
-
-/**
- * Manages the web.xml elements of interest to Facelet tag libraries
- *
- * @author cbateman
- *
- */
-public class WebappConfiguration
-{
- /**
- * The param key for Facelet 1.x libraries declared in web.xml
- */
- public static final String FACELET_10_LIBRARIES_CONTEXT_PARAM_NAME = "facelets.LIBRARIES"; //$NON-NLS-1$
- /**
- * The param key for Facelet 2.0 libraries declared in web.xml
- */
- public static final String JSF20_FACELET_LIBRARIES_CONTEXT_PARAM_NAME = "javax.faces.FACELETS_LIBRARIES"; //$NON-NLS-1$
- private final IProject _project;
- /**
- * Cached instance of ContextParamAdapter.
- */
- private final ContextParamAdapter _contextParamAdapter;
- private List<IFile> _cachedFiles;
- private final IModelProvider _modelProvider;
- private final AbstractVirtualComponentQuery _vcQuery;
- private final LifecycleListener _lifecycleListener;
- private final WorkspaceMediator _wsMediator;
-
- /**
- * @param project
- * @param modelProvider
- * @param vcQuery
- * @param wsMediator
- */
- public WebappConfiguration(final IProject project,
- final IModelProvider modelProvider,
- final AbstractVirtualComponentQuery vcQuery,
- final WorkspaceMediator wsMediator)
- {
- _project = project;
- _vcQuery = vcQuery;
- _lifecycleListener = new LifecycleListener(getWebXmlFile(project),
- project.getWorkspace());
- _contextParamAdapter = new ContextParamAdapter();
- _modelProvider = modelProvider;
- _wsMediator = wsMediator;
- }
-
- /**
- * @param listener
- */
- public void addListener(final WebappListener listener)
- {
- _contextParamAdapter.addListener(listener);
- }
-
- /**
- * @param listener
- */
- public void removeListener(final WebappListener listener)
- {
- _contextParamAdapter.removeListener(listener);
- }
-
- /**
- * @return the list of IFile's
- */
- public List<IFile> getFiles()
- {
- final IVirtualFolder folder = _vcQuery.getWebContentFolder(_project);
-
- if (folder == null)
- {
- return Collections.emptyList();
- }
-
- final List<String> filenames = getConfigFilesFromContextParam(_project,
- _modelProvider);
- final List<IFile> files = new ArrayList<IFile>();
-
- for (final String filename : filenames)
- {
- final IVirtualFile vfile = folder.getFile(new Path(filename));
- if (vfile != null)
- {
- files.add(vfile.getUnderlyingFile());
- }
- }
- _cachedFiles = files;
- return Collections.unmodifiableList(_cachedFiles);
- }
-
- private IFile getWebXmlFile(final IProject project)
- {
- final IVirtualFolder webContentFolder = _vcQuery
- .getWebContentFolder(project);
- final IContainer folder = webContentFolder.getUnderlyingFolder();
- return folder.getFile(new Path("WEB-INF/web.xml")); //$NON-NLS-1$
- }
-
- /**
- *
- */
- public void start()
- {
- _lifecycleListener.addListener(_contextParamAdapter);
- }
-
- /**
- *
- */
- public void stop()
- {
- _lifecycleListener.removeListener(_contextParamAdapter);
- }
-
- /**
- *
- */
- public void dispose()
- {
- _lifecycleListener.dispose();
- }
-
- /**
- * Gets list of application configuration file names as listed in the JSF
- * CONFIG_FILES context parameter ("javax.faces.CONFIG_FILES"). Will return
- * an empty list if WebArtifactEdit is null, if WebApp is null, if context
- * parameter does not exist, or if trimmed context parameter's value is an
- * empty String.
- *
- * @param project
- * IProject instance for which to get the context parameter's
- * value.
- * @param provider
- * @return List of application configuration file names as listed in the JSF
- * CONFIG_FILES context parameter ("javax.faces.CONFIG_FILES"); list
- * may be empty.
- */
- public static List<String> getConfigFilesFromContextParam(
- final IProject project, final IModelProvider provider)
- {
- List<String> filesList = Collections.EMPTY_LIST;
- // if (JSFAppConfigUtils.isValidJSFProject(project))
- {
- final Object webAppObj = provider.getModelObject();
- if (webAppObj != null)
- {
- if (webAppObj instanceof org.eclipse.jst.javaee.web.WebApp)
- {
- filesList = getConfigFilesForJEEApp((org.eclipse.jst.javaee.web.WebApp) webAppObj);
- }
- }
-
- }
- return filesList;
- }
-
- private static List<String> getConfigFilesForJEEApp(
- final org.eclipse.jst.javaee.web.WebApp webApp)
- {
- String filesString = null;
- final List contextParams = webApp.getContextParams();
- final Iterator itContextParams = contextParams.iterator();
- final List<String> fileStrings = new ArrayList<String>();
- while (itContextParams.hasNext())
- {
- final org.eclipse.jst.javaee.core.ParamValue paramValue = (org.eclipse.jst.javaee.core.ParamValue) itContextParams
- .next();
- if (paramValue.getParamName().equals(
- FACELET_10_LIBRARIES_CONTEXT_PARAM_NAME)
- || paramValue.getParamName().equals(
- JSF20_FACELET_LIBRARIES_CONTEXT_PARAM_NAME))
- {
- filesString = paramValue.getParamValue();
- fileStrings.addAll(parseFilesString(filesString));
- }
- }
- return fileStrings;
- }
-
- private static List<String> parseFilesString(final String filesString)
- {
- final List<String> filesList = new ArrayList<String>();
- if (filesString != null && filesString.trim().length() > 0)
- {
- final StringTokenizer stFilesString = new StringTokenizer(
- filesString, ";"); //$NON-NLS-1$
- while (stFilesString.hasMoreTokens())
- {
- final String configFile = stFilesString.nextToken().trim();
- filesList.add(configFile);
- }
- }
- return filesList;
- }
-
- /**
- * Adapter implementation used to monitor addition/removal of context-param
- * nodes and change in name of existing nodes in order to respond to changes
- * to the JSF CONFIG_FILES context-param.
- *
- * @author Ian Trimble - Oracle
- */
- private class ContextParamAdapter implements IResourceLifecycleListener
- {
- private final CopyOnWriteArrayList<WebappListener> _listeners = new CopyOnWriteArrayList<WebappListener>();
-
- public void addListener(final WebappListener listener)
- {
- _listeners.addIfAbsent(listener);
- }
-
- public void removeListener(final WebappListener listener)
- {
- _listeners.remove(listener);
- }
-
- private void fireEvent(final WebappChangeEvent event)
- {
- for (final WebappListener listener : _listeners)
- {
- listener.webappChanged(event);
- }
- }
-
- private void checkAndFireFileChanges()
- {
- final List<IFile> oldFiles = _cachedFiles == null ? Collections.EMPTY_LIST
- : _cachedFiles;
- final List<IFile> newFiles = getFiles();
-
- final List<IFile> filesAdded = new ArrayList<IFile>();
- final List<IFile> filesRemoved = new ArrayList<IFile>();
-
- for (final IFile oldFile : oldFiles)
- {
- if (!newFiles.contains(oldFile))
- {
- filesRemoved.add(oldFile);
- }
- }
-
- for (final IFile newFile : newFiles)
- {
- if (!oldFiles.contains(newFile))
- {
- filesAdded.add(newFile);
- }
- }
-
- if (filesAdded.size() > 0 || filesRemoved.size() > 0)
- {
- fireEvent(new WebappChangeEvent(filesRemoved, filesAdded));
- }
- }
-
- /**
- * Called when a ContextParam instance is removed.
- *
- * @param contextParam
- * ContextParam instance.
- */
- protected void processParamValue(
- final org.eclipse.jst.javaee.core.ParamValue contextParam)
- {
- checkAndFireFileChanges();
- }
-
-// /**
-// * Tests if the passed ContextParam instance is the JSF CONFIG_FILES
-// * context parameter.
-// *
-// * @param contextParam
-// * ContextParam instance.
-// * @return true if the passed ContextParam instance is the JSF
-// * CONFIG_FILES context parameter, else false
-// */
-// protected boolean isConfigFilesContextParam(
-// final org.eclipse.jst.javaee.core.ParamValue contextParam)
-// {
-// boolean isConfigFiles = false;
-// if (contextParam != null)
-// {
-// final String name = contextParam.getParamName();
-// if (FACELET_10_LIBRARIES_CONTEXT_PARAM_NAME.equals(name)
-// || JSF20_FACELET_LIBRARIES_CONTEXT_PARAM_NAME
-// .equals(name))
-// {
-// isConfigFiles = true;
-// }
-// }
-// return isConfigFiles;
-// }
-
- public EventResult acceptEvent(final ResourceLifecycleEvent event)
- {
- // the event is only interesting if it is the web.xml
- if (event.getAffectedResource() instanceof IFile
- && "web.xml".equals(event.getAffectedResource().getProjectRelativePath().lastSegment())) //$NON-NLS-1$
- {
- if (event.getEventType() == EventType.RESOURCE_CHANGED)
- {
- handleChange();
- }
- }
- return EventResult.getDefaultEventResult();
- }
-
- private void handleChange()
- {
- final IWorkspaceRunnable runnable = new IWorkspaceRunnable()
- {
- public void run(final IProgressMonitor monitor) throws CoreException
- {
- final Object modelObject = _modelProvider.getModelObject();
- if (modelObject instanceof org.eclipse.jst.javaee.web.WebApp)
- {
- for (final org.eclipse.jst.javaee.core.ParamValue paramValue : ((IWebCommon) modelObject)
- .getContextParams())
- {
- processParamValue(paramValue);
- }
- }
- // TODO: possibly handle facelets 1.0 in pre-2.5 webapps in
- // the
- // future
- // if it's worth the complexity.
- // SEE previous revs in CVS.
- }
- };
- _wsMediator.runInWorkspaceJob(runnable, "Update web xml"); //$NON-NLS-1$
- }
- }
-
- abstract static class WebappListener
- {
- public static class WebappChangeEvent
- {
- private final List<IFile> _removed;
- private final List<IFile> _added;
-
- WebappChangeEvent(final List<IFile> removed, final List<IFile> added)
- {
- _removed = Collections.unmodifiableList(removed);
- _added = Collections.unmodifiableList(added);
- }
-
- public final List<IFile> getRemoved()
- {
- return _removed;
- }
-
- public final List<IFile> getAdded()
- {
- return _added;
- }
- }
-
- public abstract void webappChanged(final WebappChangeEvent event);
- }
-}

Back to the top