Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/AbstractJSFResourceLocator.java57
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResource.java18
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceContainer.java11
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceFragment.java48
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceLocator.java24
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJarBasedJSFResource.java20
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IWorkspaceJSFResourceFragment.java18
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResource.java51
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceChangeListener.java110
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceContainer.java25
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceFragment.java41
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResource.java107
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResourceLocator.java178
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceFragmentIdentifier.java36
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceIdentifier.java27
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/Messages.java27
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceFragmentIdentifier.java132
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifier.java112
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifierFactory.java167
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResource.java36
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceContainer.java42
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceLocator.java78
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceResourceManager.java406
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/messages.properties1
24 files changed, 0 insertions, 1772 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/AbstractJSFResourceLocator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/AbstractJSFResourceLocator.java
deleted file mode 100644
index b0d5df80e..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/AbstractJSFResourceLocator.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jst.jsf.common.internal.locator.AbstractLocator;
-import org.eclipse.jst.jsf.common.internal.locator.ILocatorChangeListener;
-import org.eclipse.jst.jsf.designtime.internal.resources.JSFResourceChangeListener.JSFResourceChangedEvent;
-
-/**
- * A locator that finds JSF resources.
- *
- * @author cbateman
- *
- */
-public abstract class AbstractJSFResourceLocator extends
- AbstractLocator<List<IJSFResourceFragment>, IProject, String> implements
- IJSFResourceLocator
-{
-
- /**
- * @param id
- * @param displayName
- * @param noResultValue
- * @param mutableListenerList
- */
- protected AbstractJSFResourceLocator(String id, String displayName,
- List<IJSFResourceFragment> noResultValue,
- CopyOnWriteArrayList<ILocatorChangeListener> mutableListenerList)
- {
- super(id, displayName, noResultValue, mutableListenerList);
- }
-
- protected abstract List<IJSFResourceFragment> doLocate(IProject context);
-
- /**
- * TODO: would be better to have a private interface to call fire.
- *
- * @param event
- */
- protected void fireChangeEvent(final JSFResourceChangedEvent event)
- {
- super.fireChangeEvent(event);
- }
-
- public void addListener(JSFResourceChangeListener listener)
- {
- super.addListener(listener);
- }
-
- public void removeListener(JSFResourceChangeListener listener)
- {
- super.removeListener(listener);
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResource.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResource.java
deleted file mode 100644
index 7ece953b8..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResource.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-/**
- * Represents a JSF loadable resource (spec 2.6).
- *
- * @author cbateman
- *
- */
-public interface IJSFResource extends IJSFResourceFragment
-{
- /**
- * @param contentTypeName
- * @return true if the resources matches the content type indicated by the
- * contentTypeName.
- */
- public abstract boolean isContentType(final String contentTypeName);
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceContainer.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceContainer.java
deleted file mode 100644
index e65ff0194..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceContainer.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-/**
- * A JSF Resource fragment that is a container for other fragments.
- * @author cbateman
- *
- */
-public interface IJSFResourceContainer extends IJSFResourceFragment
-{
- // do nothing. Tagging for now.
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceFragment.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceFragment.java
deleted file mode 100644
index 71d474c7b..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceFragment.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-/**
- * An object that backs a fragment of a JSF resource. A fragment may be a full
- * fledged JSF resource or a may be another interesting related object such as
- * the library folder that holds a resource.
- *
- * @author cbateman
- *
- */
-public interface IJSFResourceFragment
-{
-
- /**
- * @return true if the fragment is accessible
- */
- public abstract boolean isAccessible();
-
- /**
- * @return the type of this fragment.
- */
- public abstract Type getType();
-
- /**
- * @return the id of the fragment
- */
- public ResourceFragmentIdentifier getId();
-
- /**
- * The type of a fragment
- *
- */
- public enum Type
- {
- /**
- * A fragment of this type is a full-fledged JSF Resource. A fragment of
- * this type can always be cast to IJSFResource.
- */
- RESOURCE,
- /**
- * A fragment of this type is a container for actual RESOURCE's or other
- * fragments (or both). A fragment of this type can always be cast to
- * IJSFResourceContainer.
- */
- CONTAINER;
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceLocator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceLocator.java
deleted file mode 100644
index c44673cfe..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceLocator.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jst.jsf.common.internal.locator.ILocator;
-
-/**
- * A JSF resource locator.
- *
- * @author cbateman
- *
- */
-public interface IJSFResourceLocator extends ILocator<List<IJSFResourceFragment>, IProject, String>
-{
- /**
- * @param listener
- */
- public void addListener(final JSFResourceChangeListener listener);
- /**
- * @param listener
- */
- public void removeListener(final JSFResourceChangeListener listener);
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJarBasedJSFResource.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJarBasedJSFResource.java
deleted file mode 100644
index 76bcf6270..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJarBasedJSFResource.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import java.net.URL;
-
-/**
- * @author cbateman
- *
- */
-public interface IJarBasedJSFResource extends IJSFResource
-{
- /**
- * @return the uri of the jar where the resource lives
- */
- public abstract URL getJarURL();
-
- /**
- * @return the zipEntry into the jar where the resource is.
- */
- public abstract String getJarEntryName();
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IWorkspaceJSFResourceFragment.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IWorkspaceJSFResourceFragment.java
deleted file mode 100644
index d0d4a8a4b..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IWorkspaceJSFResourceFragment.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import org.eclipse.core.resources.IResource;
-
-/**
- * A JSF fragment whose design time object(s) of interest are in the workspace
- * @author cbateman
- *
- */
-public interface IWorkspaceJSFResourceFragment extends IJSFResourceFragment
-{
-
- /**
- * @return the corresponding design time workspace resource.
- */
- public IResource getResource();
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResource.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResource.java
deleted file mode 100644
index ccd37fe52..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResource.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import org.eclipse.jst.jsf.common.internal.resource.ContentTypeResolver;
-
-/**
- * Represents a JSF loadable resource (spec 2.6).
- *
- * @author cbateman
- *
- */
-public abstract class JSFResource extends JSFResourceFragment implements IJSFResource
-{
- private final ContentTypeResolver _contentTypeResolver;
-
- /**
- * @param id
- * @param contentTypeResolver
- */
- public JSFResource(final ResourceIdentifier id,
- final ContentTypeResolver contentTypeResolver)
- {
- super(id, Type.RESOURCE);
- _contentTypeResolver = contentTypeResolver;
- }
-
- /**
- * @return the identifier for this resource.
- */
- public final ResourceIdentifier getId()
- {
- return (ResourceIdentifier) super.getId();
- }
-
- /**
- * @return true if this jsf resource is currently accessible.
- */
- @Override
- public abstract boolean isAccessible();
-
- public boolean isContentType(final String contentTypeName)
- {
- return _contentTypeResolver.matchesType(contentTypeName, getId()
- .getResourceName());
- }
-
- @Override
- public String toString()
- {
- return getId().toString();
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceChangeListener.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceChangeListener.java
deleted file mode 100644
index f7004c550..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceChangeListener.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import org.eclipse.jst.jsf.common.internal.locator.ILocatorChangeListener;
-
-/**
- *
- * @author cbateman
- *
- */
-public abstract class JSFResourceChangeListener implements ILocatorChangeListener
-{
-
- /**
- * Indicates that a tag library has changed
- * @author cbateman
- *
- */
- public static class JSFResourceChangedEvent extends LocatorChangeEvent
- {
- /**
- *
- */
- private static final long serialVersionUID = -1546380081551499245L;
-
- /**
- * TODO: what happens if one locator has a namespace collision with
- * another one?
- */
- public enum CHANGE_TYPE
- {
- /**
- * Indicates that the resource is new
- */
- ADDED,
-
- /**
- * Indicates that the resource was removed.
- */
- REMOVED,
-
- /**
- * Indicates that the resource is not new, but it's content
- * has changed
- */
- CHANGED
- }
-
- private final CHANGE_TYPE _changeType;
- private final IJSFResourceFragment _oldValue;
- private final IJSFResourceFragment _newValue;
-
- /**
- * @param source
- * @param oldValue
- * @param newValue
- * @param changeType
- */
- public JSFResourceChangedEvent(
- final AbstractJSFResourceLocator source,
- final IJSFResourceFragment oldValue,
- final IJSFResourceFragment newValue,
- final CHANGE_TYPE changeType)
- {
- super(source);
- _changeType = changeType;
- _oldValue = oldValue;
- _newValue = newValue;
- }
-
- @Override
- public IJSFResourceLocator getSource()
- {
- return (IJSFResourceLocator) super.getSource();
- }
-
- /**
- * @return the type of the change
- */
- public final CHANGE_TYPE getChangeType()
- {
- return _changeType;
- }
-
- /**
- * @return the old value. This is null if the event is ADDED
- */
- public final IJSFResourceFragment getOldValue()
- {
- return _oldValue;
- }
-
- /**
- * @return the new value. This is null if the event is REMOVED
- */
- public final IJSFResourceFragment getNewValue()
- {
- return _newValue;
- }
- }
-
- public final void changed(final LocatorChangeEvent event)
- {
- changed((JSFResourceChangedEvent)event);
- }
-
- /**
- * @param event
- */
- public abstract void changed(final JSFResourceChangedEvent event);
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceContainer.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceContainer.java
deleted file mode 100644
index 3ffaf5885..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceContainer.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-/**
- * A container for JSFResource's. This is a fragment in that it's identifier
- * may not point to a valid JSFResource but rather a portion of that nonetheless
- * maps to some interesting underlying contain object such as an IFolder.
- *
- * @author cbateman
- *
- */
-public abstract class JSFResourceContainer extends JSFResourceFragment implements IJSFResourceContainer
-{
-
- /**
- * @param id
- */
- public JSFResourceContainer(ResourceFragmentIdentifier id)
- {
- super(id, Type.CONTAINER);
- }
-
- @Override
- public abstract boolean isAccessible();
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceFragment.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceFragment.java
deleted file mode 100644
index 4de62aef6..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceFragment.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-/**
- *
- * @author cbateman
- *
- */
-public abstract class JSFResourceFragment implements IJSFResourceFragment
-{
- private final ResourceFragmentIdentifier _id;
- private final Type _type;
-
- /**
- * @param id
- * @param type
- */
- public JSFResourceFragment(final ResourceFragmentIdentifier id,
- final Type type)
- {
- _id = id;
- _type = type;
- }
-
- public ResourceFragmentIdentifier getId()
- {
- return _id;
- }
-
- public final Type getType()
- {
- return _type;
- }
-
- public abstract boolean isAccessible();
-
- public String toString()
- {
- String toString = _id != null ? _id.toString() : "?"; //$NON-NLS-1$
- return String.format("%s[%s]", toString, _type.toString()); //$NON-NLS-1$
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResource.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResource.java
deleted file mode 100644
index 3cad67ee9..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResource.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import java.io.IOException;
-import java.net.JarURLConnection;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.jar.JarFile;
-import java.util.zip.ZipEntry;
-
-import org.eclipse.jst.jsf.common.internal.resource.ContentTypeResolver;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-
-/**
- * A JSF Resource that references an entry in the jar. Because of changes in the
- * underlying system since it was created, there is no guarantee that the jarURI
- * is still valid. Callers should call isAccessible to determine this.
- *
- * @author cbateman
- *
- */
-public class JarBasedJSFResource extends JSFResource implements IJarBasedJSFResource
-{
-
- private final URL _jarURL;
-
- /**
- * @param id
- * @param jarURL
- * @param contentTypeResolver
- */
- public JarBasedJSFResource(final ResourceIdentifier id, final URL jarURL,
- final ContentTypeResolver contentTypeResolver)
- {
- super(id, contentTypeResolver);
- _jarURL = jarURL;
- }
-
- /**
- * @return the uri pointing in the the jar where the resource lives.
- */
- public URL getJarURL()
- {
- return _jarURL;
- }
-
- /**
- * @return the jar entry name for this resource.
- */
- public String getJarEntryName()
- {
- return String.format("META-INF/resources/%s", getId().toString()); //$NON-NLS-1$
- }
-
- private ZipEntry getZipEntry(final JarFile jarFile)
- {
- return jarFile.getEntry(getJarEntryName());
- }
-
- /**
- * @return true if is accessible.
- */
- @Override
- public boolean isAccessible()
- {
- JarFile jarFile = null;
- try
- {
- jarFile = getJarFile();
- if (jarFile != null)
- {
- final ZipEntry entry = getZipEntry(jarFile);
- return entry != null;
- }
- } finally
- {
- if (jarFile != null)
- {
- try
- {
- jarFile.close();
- } catch (IOException ioex)
- {
- JSFCorePlugin.log("Error closing jar file", ioex); //$NON-NLS-1$
- }
- }
- }
- return false;
- }
-
- private JarFile getJarFile()
- {
- URLConnection connection;
- try
- {
- connection = _jarURL.openConnection();
- connection.connect();
- if (connection instanceof JarURLConnection)
- {
- return ((JarURLConnection) connection).getJarFile();
- }
- } catch (IOException e)
- {
- // fall through
- }
- return null;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResourceLocator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResourceLocator.java
deleted file mode 100644
index aa48cea55..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResourceLocator.java
+++ /dev/null
@@ -1,178 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jst.jsf.common.internal.finder.VisitorMatcher;
-import org.eclipse.jst.jsf.common.internal.finder.acceptor.JarEntryMatchingAcceptor;
-import org.eclipse.jst.jsf.common.internal.finder.matcher.TaglibJarEntryFinder;
-import org.eclipse.jst.jsf.common.internal.locator.ILocatorChangeListener;
-import org.eclipse.jst.jsf.common.internal.resource.ClasspathJarFile;
-import org.eclipse.jst.jsf.common.internal.resource.ContentTypeResolver;
-import org.eclipse.jst.jsf.common.internal.resource.IJarLocator;
-import org.eclipse.jst.jsf.common.internal.util.JarUtilities;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.designtime.internal.resources.ResourceIdentifierFactory.InvalidIdentifierException;
-
-/**
- * A JSF resource locator that finds resources in jars.
- *
- * @author cbateman
- *
- */
-public class JarBasedJSFResourceLocator extends AbstractJSFResourceLocator
-{
- private final IJarLocator _provider;
- private final ContentTypeResolver _contentTypeResolver;
- private static final Pattern _resourcePathPattern = Pattern
- .compile("META-INF/resources/(.*)"); //$NON-NLS-1$
- private static final TaglibJarEntryFinder _resourceFinder = new TaglibJarEntryFinder(
- _resourcePathPattern);
-
- /**
- * @param id
- * @param displayName
- * @param noResultValue
- * @param mutableListenerList
- * @param provider
- * @param contentTypeResolver
- */
- public JarBasedJSFResourceLocator(
- final String id,
- final String displayName,
- final List<IJSFResourceFragment> noResultValue,
- final CopyOnWriteArrayList<ILocatorChangeListener> mutableListenerList,
- final IJarLocator provider,
- final ContentTypeResolver contentTypeResolver)
- {
- super(id, displayName, noResultValue, mutableListenerList);
- _provider = provider;
- _contentTypeResolver = contentTypeResolver;
- }
-
- /**
- * @param noResultValue
- * @param mutableListenerList
- * @param provider
- * @param contentTypeResolver
- */
- public JarBasedJSFResourceLocator(
- final List<IJSFResourceFragment> noResultValue,
- final CopyOnWriteArrayList<ILocatorChangeListener> mutableListenerList,
- final IJarLocator provider,
- final ContentTypeResolver contentTypeResolver)
- {
- this(
- "", "", noResultValue, mutableListenerList, provider, contentTypeResolver); //$NON-NLS-1$//$NON-NLS-2$
- }
-
- @Override
- public void start(final IProject initialContext)
- {
- _provider.start(initialContext);
- super.start(initialContext);
- }
-
- @Override
- public void stop()
- {
- _provider.stop();
- super.stop();
- }
-
- @Override
- protected List<IJSFResourceFragment> doLocate(final IProject project)
- {
- final List<IJSFResourceFragment> resourcesFound = new ArrayList<IJSFResourceFragment>();
- final Collection<? extends ClasspathJarFile> jars = _provider
- .getJars(project);
- for (final ClasspathJarFile classpathJarFile : jars)
- {
- final JarFile jarFile = classpathJarFile.getJarFile();
- if (jarFile != null)
- {
- resourcesFound.addAll(processJar(jarFile));
- }
- }
- return resourcesFound;
- }
-
- /**
- * @param entry
- * @param defaultDtdStream
- * @throws Exception
- */
- private List<JSFResource> processJar(final JarFile jarFile)
- {
- final List<JSFResource> tagLibsFound = new ArrayList<JSFResource>();
- try
- {
- if (jarFile != null)
- {
- final JarEntryMatchingAcceptor acceptor = new JarEntryMatchingAcceptor();
- final VisitorMatcher<JarFile, JarEntry, String> matcher = new VisitorMatcher<JarFile, JarEntry, String>(
- "", "", acceptor, Collections.singletonList(_resourceFinder)); //$NON-NLS-1$//$NON-NLS-2$
- final Collection<? extends JarEntry> matchingEntries = matcher
- .find(jarFile);
- for (final JarEntry jarEntry : matchingEntries)
- {
- try
- {
- final Matcher patternMatcher = _resourcePathPattern
- .matcher(jarEntry.getName());
- if (patternMatcher.matches())
- {
- final String group = patternMatcher.group(1);
- if (group != null && group.trim().length() > 0)
- {
- final ResourceIdentifier libRes = new ResourceIdentifierFactory()
- .createLibraryResource(group);
- final URL jarUrl = JarUtilities.INSTANCE
- .createJarUrl(jarFile);
- tagLibsFound.add(new JarBasedJSFResource(
- libRes, jarUrl, _contentTypeResolver));
- }
- }
- } catch (final InvalidIdentifierException e)
- {
- JSFCorePlugin.log(IStatus.INFO, "Ignoring invalid id: "+e.getId()); //$NON-NLS-1$
- }
- catch (final Exception e)
- {
- JSFCorePlugin.log(
- "Error initializing facelet registry entry", //$NON-NLS-1$
- e);
- }
- }
- }
- } catch (final Exception e)
- {
- JSFCorePlugin.log(e,
- "While locating jar based facelet tag libraries"); //$NON-NLS-1$
- } finally
- {
- if (jarFile != null)
- {
- try
- {
- jarFile.close();
- } catch (final IOException ioe)
- {
- JSFCorePlugin.log("Error closing jar file", ioe); //$NON-NLS-1$
- }
- }
- }
- return tagLibsFound;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceFragmentIdentifier.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceFragmentIdentifier.java
deleted file mode 100644
index 744f0b1b6..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceFragmentIdentifier.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * A fragment identifier for a library folder.
- *
- * @author cbateman
- *
- */
-public class LibraryResourceFragmentIdentifier extends
- ResourceFragmentIdentifier
-{
- private final String _libraryName;
-
- /**
- * @param libraryName
- */
- public LibraryResourceFragmentIdentifier(final String libraryName)
- {
- super();
- _libraryName = libraryName;
- }
-
- @Override
- public String getLibraryName()
- {
- return _libraryName;
- }
- @Override
- public IStatus validate()
- {
- return Status.OK_STATUS;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceIdentifier.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceIdentifier.java
deleted file mode 100644
index 8d782731d..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceIdentifier.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-/**
- * A resource identifier for a library.
- * @author cbateman
- *
- */
-public class LibraryResourceIdentifier extends ResourceIdentifier
-{
- private final String _libraryName;
-
- /**
- * @param resName
- * @param libraryName
- */
- public LibraryResourceIdentifier(final String resName, final String libraryName)
- {
- super(resName);
- _libraryName = libraryName;
- }
-
- @Override
- public String getLibraryName()
- {
- return _libraryName;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/Messages.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/Messages.java
deleted file mode 100644
index d08cae68a..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/Messages.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * NLS for resource identifier messages.
- * @author cbateman
- *
- */
-public class Messages extends NLS
-{
- private static final String BUNDLE_NAME = "org.eclipse.jst.jsf.designtime.internal.resources.messages"; //$NON-NLS-1$
- /**
- * see messages.properties
- */
- public static String ResourceIdentifier_0;
- static
- {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- private Messages()
- {
- // no external instantiation
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceFragmentIdentifier.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceFragmentIdentifier.java
deleted file mode 100644
index db87d34d5..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceFragmentIdentifier.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Represents a piece of a resource identifier.
- *
- * [localePrefix/][libraryName/][libraryVersion/][resourceName][/resourceVersion]
- *
- * @author cbateman
- *
- */
-public abstract class ResourceFragmentIdentifier
-{
-
- /**
- * @return true if validate().isOk
- */
- public boolean isValid()
- {
- return validate().isOK();
- }
-
- /**
- * @return a validation status for the current value of this identifier
- */
- public abstract IStatus validate();
-
- /**
- * @return the resource name or null if none.
- */
- public String getResourceName()
- {
- return null;
- }
-
- /**
- * @return the locale prefix or null if none.
- */
- public String getLocalePrefix()
- {
- return null;
- }
-
- /**
- * @return the library name or null if none.
- */
- public String getLibraryName()
- {
- return null;
- }
-
- /**
- * @return the library version or null if none.
- */
- public String getLibraryVersion()
- {
- return null;
- }
-
- /**
- * @return the resource version or null if none.
- */
- public String getResourceVersion()
- {
- return null;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (super.equals(obj))
- {
- return true;
- }
-
- if (obj instanceof ResourceIdentifier)
- {
- String meToString = toString();
- String otherToString = obj.toString();
- return meToString != null && meToString.equals(otherToString);
- }
- return false;
- }
-
- @Override
- public int hashCode()
- {
- String toString = toString();
- return toString != null ? toString.hashCode() : 0;
- }
-
-
- @Override
- public String toString()
- {
- String toString = ""; //$NON-NLS-1$
-
- toString = append(toString, getLocalePrefix());
- toString = append(toString, getLibraryName());
- toString = append(toString, getLibraryVersion());
- toString = append(toString, getResourceName());
- toString = append(toString, getResourceVersion());
- return toString;
- }
-
- /**
- * @param appendStr
- * @param toAppend
- * @return a string with to toAppend appended to appendStr if it is not null.
- * If appendStr is not append, a '/' is added between the two concatenated strings.
- */
- protected String append(String appendStr, final String toAppend)
- {
- if (toAppend != null)
- {
- if (appendStr.length() > 0)
- {
- appendStr += "/"; //$NON-NLS-1$
- }
- appendStr += toAppend;
- }
- return appendStr;
- }
- /**
- * @return true if this identifier represents only a fragment of an identifier.
- */
- public boolean isFragment()
- {
- return true;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifier.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifier.java
deleted file mode 100644
index 19f86efa9..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifier.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-
-/**
- * Encapsulates the concept of a JSF (2.0+) resource identifier per 2.6.1 of the
- * specification. The class does not ensure validity of the identifier.
- *
- * You can call validate to determine if the contents are correct.
- *
- * @author cbateman
- *
- */
-public class ResourceIdentifier extends ResourceFragmentIdentifier
-{
- /**
- * Resource name is not optional on identifiers.
- */
- public static final int RESOURCE_NAME_MUST_NOT_BE_EMPTY = 0;
- /**
- * The namespace for validation diagnositics created by validate.
- */
- public static final String ResourceIdentifierValidationNamespace = JSFCorePlugin.PLUGIN_ID
- + "_JSFResourceIdentifier"; //$NON-NLS-1$
- private final String _resName;
-
- /**
- * @param resName
- */
- public ResourceIdentifier(String resName)
- {
- super();
- _resName = resName;
- }
-
- /**
- * Allow fragments to be
- */
- protected ResourceIdentifier()
- {
- super();
- _resName = null;
- }
- /**
- * @return the resource name or null if none.
- */
- @Override
- public String getResourceName()
- {
- return _resName;
- }
-
- /**
- * @return a status object multi-value that contains the results of
- * validating this resoure identifier.
- */
- @Override
- public IStatus validate()
- {
- final String id = ResourceIdentifierValidationNamespace;
- final MultiStatus status = new MultiStatus(id, 0,
- "Resource identifier problems", null); //$NON-NLS-1$
-
- if (getResourceName() == null)
- {
- status.add(new Status(IStatus.ERROR, id,
- RESOURCE_NAME_MUST_NOT_BE_EMPTY,
- Messages.ResourceIdentifier_0, null));
- }
-
- return status;
- }
-
- @Override
- public String toString()
- {
- if (!validate().isOK())
- {
- throw new IllegalStateException();
- }
- String idString = getResourceName();
- if (getResourceVersion() != null)
- {
- idString = String.format("%s/%s", getResourceVersion(), idString); //$NON-NLS-1$
- }
- if (getLibraryName() != null)
- {
- idString = String.format("%s/%s", getLibraryName(), idString); //$NON-NLS-1$
- }
-
- if (getLocalePrefix() != null)
- {
- idString = String.format("%s/%s", getLocalePrefix(), idString); //$NON-NLS-1$
- }
-
- if (getResourceVersion() != null)
- {
- idString += "/" + getResourceVersion(); //$NON-NLS-1$
- }
- return idString;
- }
-
- @Override
- public final boolean isFragment()
- {
- return false;
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifierFactory.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifierFactory.java
deleted file mode 100644
index 004083b2c..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifierFactory.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import java.util.regex.Pattern;
-
-/**
- * Creates a resource identifier from a string. Because id strings are ambiguous,
- * the caller must used specific methods to resolve the ambiguity.
- *
- * @author cbateman
- *
- */
-public class ResourceIdentifierFactory
-{
- /**
- * The regular expression for version matching
- */
- public static final String VersionRegex = "[0-9]+(_[0-9]+)*"; //$NON-NLS-1$
- /**
- * A precompiled regex pattern for matching resource version.
- */
- public static final Pattern VersionPattern = Pattern.compile(VersionRegex);
-
- /**
- * @param idString
- * @return a LibraryResourceIdentifier based on the string. The call
- * assumes that the identifier contains a library name. If the idString
- * can't be resolved for correctness, InvalidIdentifierException will be thrown.
- * @throws InvalidIdentifierException
- */
- public ResourceIdentifier createLibraryResource(final String idString) throws InvalidIdentifierException
- {
- final String[] parts = idString.split("/"); //$NON-NLS-1$
- String resName = null;
- String libraryName = null;
- switch(parts.length)
- {
- case 1:
- // The whole string is the resource name. There is no library name.
- resName = parts[0];
- break;
- case 2:
- // the first part is the libraryName and the second is the res name
- // TODO: this is ambiguous with locale/resourceName
- resName = parts[1];
- libraryName = parts[0];
- break;
- case 3:
- // is it of form libraryName/libraryVersion/resourceName?
- if (VersionPattern.matcher(parts[1]).matches())
- {
- resName = parts[2];
- libraryName = parts[0];
- break;
- }
- // if no, then this is invalid
- throw new InvalidIdentifierException(idString);
- case 4:
- // is it of the form locale/libraryName/libraryVersion/resourceName
- if (VersionPattern.matcher(parts[2]).matches())
- {
- resName = parts[3];
- libraryName = parts[1];
- break;
- }
- // no? then is it libraryName/libraryVersion/resourceName/resourceVersion
- else if (VersionPattern.matcher(parts[1]).matches())
- {
- resName = parts[2];
- libraryName = parts[0];
- break;
- }
- // no? then assume it is locale/libraryName/resourceName/resourceVersion
- else
- {
- resName = parts[2];
- libraryName = parts[1];
- break;
- }
- case 5:
- // this is the full one: locale/libraryName/libraryVersion/resourceName/resourceVersion
- resName = parts[3];
- libraryName = parts[1];
- break;
- }
-
- if (resName == null)
- {
- throw new InvalidIdentifierException(idString);
- }
-
- return new LibraryResourceIdentifier(resName, libraryName);
- }
-
- /**
- * @param libraryName
- * @return a new resource fragment identifier for a library folder.
- */
- public ResourceFragmentIdentifier createLibraryFragment(final String libraryName)
- {
- return new LibraryResourceFragmentIdentifier(libraryName);
- }
-
- /**
- * Indicates an invalid id.
- *
- * @author cbateman
- *
- */
- public static class InvalidIdentifierException extends Exception
- {
-
- private final String _id;
-
- /**
- * @param id
- */
- public InvalidIdentifierException(final String id)
- {
- super();
- _id = id;
- }
-
- /**
- * @param message
- * @param cause
- * @param id
- */
- public InvalidIdentifierException(final String message, final Throwable cause, final String id)
- {
- super(message, cause);
- _id = id;
- }
-
- /**
- * @param message
- * @param id
- */
- public InvalidIdentifierException(final String message, final String id)
- {
- super(message);
- _id = id;
- }
-
- /**
- * @param cause
- * @param id
- */
- public InvalidIdentifierException(final Throwable cause, final String id)
- {
- super(cause);
- _id = id;
- }
-
- /**
- * @return the id that was found to be invalid.
- */
- public final String getId()
- {
- return _id;
- }
-
- /**
- *
- */
- private static final long serialVersionUID = -8926293207447823901L;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResource.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResource.java
deleted file mode 100644
index c0d48e838..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResource.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jst.jsf.common.internal.resource.ContentTypeResolver;
-
-/**
- * A JSF resource that corresponds to an object in the workspace.
- * @author cbateman
- *
- */
-public class WorkspaceJSFResource extends JSFResource implements IWorkspaceJSFResourceFragment
-{
- private final IResource _res;
-
- /**
- * @param id
- * @param res
- * @param contentTypeResolver
- */
- public WorkspaceJSFResource(final ResourceIdentifier id, final IResource res, final ContentTypeResolver contentTypeResolver)
- {
- super(id, contentTypeResolver);
- _res = res;
- }
-
- public final IResource getResource()
- {
- return _res;
- }
-
-
- public final boolean isAccessible()
- {
- return _res.isAccessible();
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceContainer.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceContainer.java
deleted file mode 100644
index aa9be8422..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceContainer.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import org.eclipse.core.resources.IContainer;
-
-/**
- * A concrete JSFResourceContainer that maps to a container object in the
- * workspace.
- *
- * @author cbateman
- *
- */
-public class WorkspaceJSFResourceContainer extends JSFResourceContainer implements IWorkspaceJSFResourceFragment
-{
-
- private final IContainer _container;
-
- /**
- * @param id
- * @param container
- */
- public WorkspaceJSFResourceContainer(final ResourceFragmentIdentifier id,
- final IContainer container)
- {
- super(id);
- _container = container;
- }
-
- @Override
- public boolean isAccessible()
- {
- return _container.isAccessible();
- }
-
- /**
- * @return the container resource
- */
- public IContainer getResource()
- {
- return _container;
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceLocator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceLocator.java
deleted file mode 100644
index 425e9e92a..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceLocator.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.jst.jsf.common.internal.componentcore.AbstractVirtualComponentQuery;
-import org.eclipse.jst.jsf.common.internal.locator.ILocatorChangeListener;
-import org.eclipse.jst.jsf.common.internal.resource.ContentTypeResolver;
-
-/**
- * @author cbateman
- *
- */
-public class WorkspaceJSFResourceLocator extends AbstractJSFResourceLocator
-{
- private final AbstractVirtualComponentQuery _vcQuery;
- private final ContentTypeResolver _contentTypeResolver;
- private WorkspaceResourceManager _workspaceResourceManager;
-
- /**
- * @param id
- * @param displayName
- * @param noResultValue
- * @param mutableListenerList
- * @param vcQuery
- * @param contentTypeResolver
- * @param workspace
- */
- public WorkspaceJSFResourceLocator(
- final String id,
- final String displayName,
- final List<IJSFResourceFragment> noResultValue,
- final CopyOnWriteArrayList<ILocatorChangeListener> mutableListenerList,
- final AbstractVirtualComponentQuery vcQuery,
- final ContentTypeResolver contentTypeResolver,
- final IWorkspace workspace)
- {
- super(id, displayName, noResultValue, mutableListenerList);
- _vcQuery = vcQuery;
- _contentTypeResolver = contentTypeResolver;
- }
-
- /**
- * @param noResultValue
- * @param mutableListenerList
- * @param vcQuery
- * @param contentTypeResolver
- * @param workspace
- */
- public WorkspaceJSFResourceLocator(
- final List<IJSFResourceFragment> noResultValue,
- final CopyOnWriteArrayList<ILocatorChangeListener> mutableListenerList,
- final AbstractVirtualComponentQuery vcQuery,
- final ContentTypeResolver contentTypeResolver,
- final IWorkspace workspace)
- {
- this(
- "", "", noResultValue, mutableListenerList, vcQuery, contentTypeResolver, workspace); //$NON-NLS-1$//$NON-NLS-2$
- }
-
- @Override
- public void start(final IProject initialContext)
- {
- _workspaceResourceManager = new WorkspaceResourceManager(
- initialContext, _vcQuery, this, _contentTypeResolver);
- _workspaceResourceManager.initResources();
- super.start(initialContext);
- }
-
- @Override
- protected List<IJSFResourceFragment> doLocate(final IProject project)
- {
- return _workspaceResourceManager.getJSFResources();
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceResourceManager.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceResourceManager.java
deleted file mode 100644
index ac9127625..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceResourceManager.java
+++ /dev/null
@@ -1,406 +0,0 @@
-package org.eclipse.jst.jsf.designtime.internal.resources;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-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.finder.VisitorMatcher;
-import org.eclipse.jst.jsf.common.internal.finder.acceptor.FileMatchingAcceptor;
-import org.eclipse.jst.jsf.common.internal.resource.ContentTypeResolver;
-import org.eclipse.jst.jsf.common.internal.resource.ResourceLifecycleEvent;
-import org.eclipse.jst.jsf.common.internal.resource.ResourceLifecycleEvent.ReasonType;
-import org.eclipse.jst.jsf.common.internal.resource.ResourceManager;
-import org.eclipse.jst.jsf.common.internal.resource.ResourceTracker;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.designtime.internal.resources.JSFResourceChangeListener.JSFResourceChangedEvent;
-import org.eclipse.jst.jsf.designtime.internal.resources.JSFResourceChangeListener.JSFResourceChangedEvent.CHANGE_TYPE;
-import org.eclipse.jst.jsf.designtime.internal.resources.ResourceIdentifierFactory.InvalidIdentifierException;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
-
-/**
- * Resource Manager that tracks JSF resources in a workspace.
- *
- * @author cbateman
- *
- */
-public class WorkspaceResourceManager extends ResourceManager<IResource>
-{
- private final AbstractVirtualComponentQuery _vcQuery;
- private final IProject _project;
- private final AbstractJSFResourceLocator _locator;
- private final ContentTypeResolver _contentTypeResolver;
- private final ResourceIdentifierFactory _factory;
-
- /**
- * @param project
- * @param vcQuery
- * @param locator
- * @param contentTypeResolver
- */
- public WorkspaceResourceManager(final IProject project,
- final AbstractVirtualComponentQuery vcQuery,
- final AbstractJSFResourceLocator locator,
- final ContentTypeResolver contentTypeResolver)
- {
- super(project.getWorkspace());
- _project = project;
- _vcQuery = vcQuery;
- _locator = locator;
- _contentTypeResolver = contentTypeResolver;
- _factory = new ResourceIdentifierFactory();
- }
-
- @Override
- protected JSFResourceTracker createNewInstance(final IResource resource)
- {
- final boolean isJSFResource = !getRootResourceFolder().getParent()
- .equals(resource);
- return new JSFResourceTracker(resource, isJSFResource);
- }
-
- @Override
- public void initResources()
- {
- final IFolder folder = getRootResourceFolder();
- if (folder != null)
- {
- try
- {
- track(folder.getParent());
- track(folder);
- } catch (final Exception e1)
- {
- JSFCorePlugin
- .log(e1,
- "While trying to locate JSF resources in the workspace"); //$NON-NLS-1$
- }
- if (folder.isAccessible())
- {
- trackAllInFolder(folder);
- }
- }
- }
-
- private List<IWorkspaceJSFResourceFragment> trackAllInFolder(
- final IContainer folder)
- {
- final VisitorMatcher<IContainer, IResource, String> matcher = new VisitorMatcher<IContainer, IResource, String>(
- "", "", //$NON-NLS-1$ //$NON-NLS-2$
- new FileMatchingAcceptor(),
- Collections.singletonList(new AlwaysMatcher()));
- final List<IWorkspaceJSFResourceFragment> newFragments = new ArrayList<IWorkspaceJSFResourceFragment>();
- try
- {
- final Collection<? extends IResource> foundResources = matcher
- .find(folder);
- for (final IResource res : foundResources)
- {
- try
- {
- newFragments.add(track(res));
- } catch (final InvalidIdentifierException e)
- {
- JSFCorePlugin.log(IStatus.INFO,
- "Ignoring invalid JSF resource: "+res); //$NON-NLS-1$
- }
- catch (final ManagedObjectException e)
- {
- JSFCorePlugin.log(e,
- "Problem adding managed object for resource: "+res); //$NON-NLS-1$
- }
- }
- } catch (final Exception e)
- {
- JSFCorePlugin.log(e,
- "While trying to locate JSF resources in the workspace"); //$NON-NLS-1$
- }
- return newFragments;
- }
-
- private IWorkspaceJSFResourceFragment track(final IResource res)
- throws ManagedObjectException, InvalidIdentifierException
- {
- final IPath fullPath = res.getFullPath().makeRelativeTo(
- getRootResourceFolder().getFullPath());
- // cause the resource to get tracked
- final JSFResourceTracker tracker = (JSFResourceTracker) getInstance(res);
- IWorkspaceJSFResourceFragment jsfRes = null;
- if (res.getType() == IResource.FILE)
- {
- try
- {
- jsfRes = new WorkspaceJSFResource(
- _factory.createLibraryResource(fullPath.toString()), res,
- _contentTypeResolver);
- }
- catch (InvalidIdentifierException e)
- {
- // ensure that the tracker gets released before we throw the exception.
- unmanageResource(res);
- tracker.dispose();
- throw e;
- }
- } else
- {
- jsfRes = new WorkspaceJSFResourceContainer(
- _factory.createLibraryFragment(fullPath.toString()),
- (IContainer) res);
- }
- tracker.setJsfResource(jsfRes);
- addLifecycleEventListener(tracker);
- return jsfRes;
- }
-
- /**
- * @return the root folder for resources in the workspace.
- */
- public IFolder getRootResourceFolder()
- {
- final IVirtualFolder webContentFolder = _vcQuery
- .getWebContentFolder(_project);
- if (webContentFolder != null
- && webContentFolder.getUnderlyingFolder().isAccessible())
- {
- return webContentFolder.getUnderlyingFolder().getFolder(
- new Path("resources")); //$NON-NLS-1$
- }
- return null;
- }
-
- @Override
- public List<IResource> getResources()
- {
- return new ArrayList(getManagedResources());
- }
-
- /**
- * @return the jsf resource currently known. List is a copy but the
- * contained JSFResource references are not.
- */
- public List<IJSFResourceFragment> getJSFResources()
- {
- final List<IJSFResourceFragment> jsfResources = new ArrayList<IJSFResourceFragment>();
- final Map<IResource, ManagedResourceObject<ResourceTracker<IResource>>> jsfResourceTrackers = getPerResourceObjects();
- for (final Map.Entry<IResource, ManagedResourceObject<ResourceTracker<IResource>>> entry : jsfResourceTrackers
- .entrySet())
- {
- final JSFResourceTracker jsfResourceTracker = (JSFResourceTracker) entry
- .getValue().getManagedObject();
- if (jsfResourceTracker.isJSFResource())
- {
- jsfResources.add(jsfResourceTracker.getJsfResource());
- }
- }
- return jsfResources;
- }
-
- private class JSFResourceTracker extends ResourceTracker<IResource>
- {
- private IWorkspaceJSFResourceFragment _jsfResource;
- private final boolean _isJSFResource;
-
- /**
- * @param resource
- * @param isJSFResource
- * if false, indicates that the resource being tracked is
- * related to JSF resources but not an actual JSF resource
- * (i.e. web root).
- */
- public JSFResourceTracker(final IResource resource,
- final boolean isJSFResource)
- {
- super(resource);
- _isJSFResource = isJSFResource;
- }
-
- public boolean isJSFResource()
- {
- return _isJSFResource;
- }
-
- @Override
- protected void fireResourceInAccessible(
- final IResource affectedResource, final ReasonType reasonType)
- {
- if (reasonType == ReasonType.RESOURCE_DELETED_FROM_CONTAINER
- || reasonType == ReasonType.RESOURCE_MOVED_CONTAINER)
- {
- try
- {
- final List<JSFResourceTracker> trackers = getTrackers(affectedResource);
- for (final JSFResourceTracker tracker : trackers)
- {
- final IWorkspaceJSFResourceFragment jsfResource = tracker
- .getJsfResource();
- removeLifecycleEventListener(tracker);
- _locator.fireChangeEvent(new JSFResourceChangedEvent(
- _locator, jsfResource, null,
- CHANGE_TYPE.REMOVED));
- }
- } catch (final ManagedObjectException e)
- {
- JSFCorePlugin.log(e,
- "Processing an inaccessible resource event"); //$NON-NLS-1$
- }
- }
- }
-
- private List<JSFResourceTracker> getTrackers(final IResource res)
- throws ManagedObjectException
- {
- final JSFResourceTracker tracker = (JSFResourceTracker) getInstance(res);
- final List<JSFResourceTracker> allChildren = new ArrayList<JSFResourceTracker>();
- allChildren.add(tracker);
- if (res instanceof IContainer)
- {
- final IPath parentPath = res.getFullPath();
- for (final Entry<IResource, ManagedResourceObject<ResourceTracker<IResource>>> trackerEntry : getPerResourceObjects()
- .entrySet())
- {
- final IPath trackerPath = trackerEntry.getKey()
- .getFullPath();
- if (parentPath.isPrefixOf(trackerPath)
- && !parentPath.equals(trackerPath))
- {
- allChildren.add((JSFResourceTracker) trackerEntry
- .getValue().getManagedObject());
- }
- }
- }
- return allChildren;
- }
-
- @Override
- protected void fireResourceChanged(final IResource affectedResource,
- final ReasonType reasonType)
- {
- _locator.fireChangeEvent(new JSFResourceChangedEvent(_locator,
- _jsfResource, _jsfResource, CHANGE_TYPE.CHANGED));
- }
-
- @Override
- protected void fireResourceAdded(final IResource affectedResource,
- final ReasonType reasonType)
- {
- if (reasonType == ReasonType.RESOURCE_ADDED_TO_CONTAINER
- || reasonType == ReasonType.RESOURCE_MOVED_CONTAINER)
- {
- final IContainer parent = affectedResource.getParent();
- if (parent != null && parent.isAccessible())
- {
- try
- {
- final IWorkspaceJSFResourceFragment newJsfRes = track(affectedResource);
- fireNewJSFResourceEvent(newJsfRes);
- if (reasonType == ReasonType.RESOURCE_MOVED_CONTAINER
- && affectedResource instanceof IContainer)
- {
- final List<IWorkspaceJSFResourceFragment> newFragments = trackAllInFolder((IContainer) affectedResource);
- for (final IWorkspaceJSFResourceFragment frag : newFragments)
- {
- fireNewJSFResourceEvent(frag);
- }
- }
- } catch (final ManagedObjectException e)
- {
- JSFCorePlugin
- .log(e,
- "While adding new resource " + affectedResource); //$NON-NLS-1$
- } catch (final InvalidIdentifierException e)
- {
- JSFCorePlugin
- .log(IStatus.INFO,
- "While adding new resource " + affectedResource); //$NON-NLS-1$
- }
- }
- }
- }
-
- private void fireNewJSFResourceEvent(
- final IWorkspaceJSFResourceFragment newJsfRes)
- {
- final JSFResourceChangedEvent event = new JSFResourceChangedEvent(
- _locator, null, newJsfRes, CHANGE_TYPE.ADDED);
- _locator.fireChangeEvent(event);
- }
-
- @Override
- protected boolean isInteresting(final ResourceLifecycleEvent event)
- {
- boolean isInteresting = false;
- final ReasonType reasonType = event.getReasonType();
- switch (event.getEventType())
- {
- case RESOURCE_ADDED:
- {
- final IResource resource = getResource();
- isInteresting = (reasonType == ReasonType.RESOURCE_ADDED_TO_CONTAINER || reasonType == ReasonType.RESOURCE_MOVED_CONTAINER)
- && event.getAffectedResource().getParent()
- .equals(resource);
- // ignore if my resource is web content and this is trying
- // to add something other than resources folder
- if (resource.equals(_vcQuery.getWebContentFolder(_project)
- .getUnderlyingFolder()))
- {
- isInteresting &= event.getAffectedResource().equals(
- getRootResourceFolder());
- }
- }
- break;
- case RESOURCE_INACCESSIBLE:
- {
- final IResource resource = getResource();
- // if the resource made inaccessible was deleted or moved
- // from its container
- // and it's parent is me, then it is interesting.
- isInteresting = (reasonType == ReasonType.RESOURCE_DELETED_FROM_CONTAINER || reasonType == ReasonType.RESOURCE_MOVED_CONTAINER)
- && event.getAffectedResource().getParent()
- .equals(resource);
- // ignore if my resource is web content and this is trying
- // to add something other than resources folder
- if (resource.equals(_vcQuery.getWebContentFolder(_project)
- .getUnderlyingFolder()))
- {
- isInteresting &= event.getAffectedResource().equals(
- getRootResourceFolder());
- }
-// isInteresting &= (_isJSFResource || (resource.getType() == IResource.FOLDER && "resources".equals(resource.getName()))); //$NON-NLS-1$
- // or if the resource being delted or moved is the root
- // folder and that is my resource.
- // isInteresting |= (reasonType ==
- // ReasonType.RESOURCE_DELETED || reasonType ==
- // ReasonType.RESOURCE_MOVED_CONTAINER)
- // && (resource.equals(event.getAffectedResource()) &&
- // resource.equals(getRootResourceFolder()));
- }
- break;
- default:
- isInteresting = super.isInteresting(event);
- }
- return isInteresting;
- }
-
- public final IWorkspaceJSFResourceFragment getJsfResource()
- {
- return _jsfResource;
- }
-
- public final void setJsfResource(
- final IWorkspaceJSFResourceFragment jsfResource)
- {
- _jsfResource = jsfResource;
- }
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/messages.properties b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/messages.properties
deleted file mode 100644
index 093c3b94c..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/messages.properties
+++ /dev/null
@@ -1 +0,0 @@
-ResourceIdentifier_0=Resource name must not be empty

Back to the top