[110229] Fixed NoClassDefFoundError for URIResolverPlugin class in headless mode.
Removed dependency on runtime compatibility.
Added comments.
Various code cleanup.
Converted plugin to single jar.
diff --git a/plugins/org.eclipse.wst.common.uriresolver/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.uriresolver/META-INF/MANIFEST.MF
index 24a0f4a..8953045 100644
--- a/plugins/org.eclipse.wst.common.uriresolver/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.uriresolver/META-INF/MANIFEST.MF
@@ -3,15 +3,12 @@
Bundle-Name: org.eclipse.wst.common.uriresolver
Bundle-SymbolicName: org.eclipse.wst.common.uriresolver; singleton:=true
Bundle-Version: 0.7.0
-Bundle-ClassPath: uriresolver.jar
-Bundle-Activator: org.eclipse.core.internal.compatibility.PluginActivator
+Bundle-Activator: org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin
Bundle-Vendor: Eclipse.org
Bundle-Localization: plugin
Export-Package: org.eclipse.wst.common.uriresolver.internal,
org.eclipse.wst.common.uriresolver.internal.provisional,
org.eclipse.wst.common.uriresolver.internal.util
-Require-Bundle: org.eclipse.core.runtime.compatibility,
- org.eclipse.core.runtime,
+Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.resources
Eclipse-AutoStart: true
-Plugin-Class: org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin
diff --git a/plugins/org.eclipse.wst.common.uriresolver/build.properties b/plugins/org.eclipse.wst.common.uriresolver/build.properties
index 6b304ad..b68dc43 100644
--- a/plugins/org.eclipse.wst.common.uriresolver/build.properties
+++ b/plugins/org.eclipse.wst.common.uriresolver/build.properties
@@ -1,7 +1,7 @@
+source.. = src/
+output.. = bin/
+src.includes = build.properties
bin.includes = plugin.xml,\
uriresolver.jar,\
META-INF/,\
about.html
-jars.compile.order = uriresolver.jar
-source.uriresolver.jar = src/
-output.uriresolver.jar = bin/
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionDescriptor.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionDescriptor.java
index 2394f5e..1a60240 100644
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionDescriptor.java
+++ b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionDescriptor.java
@@ -1,51 +1,74 @@
-/*
-* Copyright (c) 2002 IBM Corporation and others.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Common Public License v1.0
-* which accompanies this distribution, and is available at
-* http://www.eclipse.org/legal/cpl-v10.html
-*
-* Contributors:
-* IBM - Initial API and implementation
-* Jens Lukowski/Innoopract - initial renaming/restructuring
-*
-*/
+/**
+ * Copyright (c) 2002 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ * Jens Lukowski/Innoopract - initial renaming/restructuring
+ *
+ */
package org.eclipse.wst.common.uriresolver.internal;
import java.util.List;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverExtension;
-
+import org.osgi.framework.Bundle;
/**
- * @author csalter
- *
- * To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Generation - Code and Comments
+ * A URI resolver extension descriptor contains all the information about
+ * an extension URI resolver. The information contained allows for the
+ * extension resolver to be instantiated and called at the correct times.
*/
public class URIResolverExtensionDescriptor
{
protected URIResolverExtension resolver;
- //protected String projectNature;
+
protected String fileType;
+
protected String className;
+
public List projectNatureIds;
+
protected String resourceType;
+
protected int stage = URIResolverExtensionRegistry.STAGE_POSTNORMALIZATION;
- protected String priority = URIResolverExtensionRegistry.PRIORITY_MEDIUM;
- protected ClassLoader classLoader;
+
+ protected String priority = URIResolverExtensionRegistry.PRIORITY_MEDIUM;
+
+ protected String pluginId;
+
protected boolean error;
- public URIResolverExtensionDescriptor(String className, ClassLoader classLoader, List projectNatureIds, String resourceType, int stage, String priority)
+ /**
+ * Constructor.
+ *
+ * @param className The extension URI resolver class name.
+ * @param pluginId The ID of the plugin that contains the extension URI resolver class.
+ * @param projectNatureIds The project nature IDs for which the resolver should run.
+ * @param resourceType The type of resource for which the resolver should run.
+ * @param stage The stage of the resolver. Either prenormalization or postnormalization.
+ * @param priority The resolver's priority. high, medium, or low.
+ */
+ public URIResolverExtensionDescriptor(String className, String pluginId,
+ List projectNatureIds, String resourceType, int stage, String priority)
{
this.className = className;
- this.classLoader = classLoader;
+ this.pluginId = pluginId;
this.projectNatureIds = projectNatureIds;
this.resourceType = resourceType;
this.stage = stage;
- this.priority = priority;
+ this.priority = priority;
}
+ /**
+ * Get the extension URI resolver.
+ *
+ * @return The extension URI resolver.
+ */
public URIResolverExtension getResolver()
{
@@ -53,10 +76,12 @@
{
try
{
- Class theClass = classLoader != null ? classLoader.loadClass(className) : Class.forName(className);
+ // Class theClass = classLoader != null ?
+ // classLoader.loadClass(className) : Class.forName(className);
+ Bundle bundle = Platform.getBundle(pluginId);
+ Class theClass = bundle.loadClass(className);
resolver = (URIResolverExtension) theClass.newInstance();
- }
- catch (Exception e)
+ } catch (Exception e)
{
error = true;
e.printStackTrace();
@@ -65,16 +90,33 @@
return resolver;
}
+ /**
+ * Determines if the resolver should run in the current scenario given
+ * the project nature ID, resource type, and stage.
+ *
+ * @param projectNatureId The project nature ID to check against.
+ * @param resourceType The resource type to check against.
+ * @param stage The stage to check against.
+ * @return True if the resolver should run, false otherwise.
+ */
public boolean matches(String projectNatureId, String resourceType, int stage)
{
- if(projectNatureIds.contains(projectNatureId))
- {
- return matches(this.resourceType, resourceType) && this.stage == stage;
- }
- return false;
+ if (projectNatureIds.contains(projectNatureId))
+ {
+ return matches(this.resourceType, resourceType) && this.stage == stage;
+ }
+ return false;
}
- public boolean matches(String a, String b)
+ /**
+ * Determines if string a matches string b.
+ * TODO: Why is this required instead of just using String.equals?
+ *
+ * @param a String for comparison.
+ * @param b String for comparison.
+ * @return True if the strings match, false otherwise.
+ */
+ private boolean matches(String a, String b)
{
return (a != null) ? a.equals(b) : a == b;
}
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java
index 926229e..d89c444 100644
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java
+++ b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java
@@ -1,15 +1,15 @@
/*
-* Copyright (c) 2002 IBM Corporation and others.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Common Public License v1.0
-* which accompanies this distribution, and is available at
-* http://www.eclipse.org/legal/cpl-v10.html
-*
-* Contributors:
-* IBM - Initial API and implementation
-* Jens Lukowski/Innoopract - initial renaming/restructuring
-*
-*/
+ * Copyright (c) 2002 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ * Jens Lukowski/Innoopract - initial renaming/restructuring
+ *
+ */
package org.eclipse.wst.common.uriresolver.internal;
import java.util.ArrayList;
@@ -20,139 +20,144 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
-
-
-public class URIResolverExtensionRegistry {
+/**
+ * The URI resolver extension registry contains information about
+ * all of the extension URI resolvers.
+ */
+public class URIResolverExtensionRegistry
+{
protected HashMap map = new HashMap();
- public static final int STAGE_PRENORMALIZATION = 1;
- public static final int STAGE_POSTNORMALIZATION = 2;
- public static final int STAGE_PHYSICAL = 3;
- public static final String PRIORITY_LOW = "low";
- public static final String PRIORITY_MEDIUM = "medium";
- public static final String PRIORITY_HIGH = "high";
- protected final static String NULL_PROJECT_NATURE_ID = "";
-
- protected static URIResolverExtensionRegistry instance;
-
- private URIResolverExtensionRegistry() {
- }
-
- public synchronized static URIResolverExtensionRegistry getIntance()
- {
- if (instance == null)
- {
- instance = new URIResolverExtensionRegistry();
- new URIResolverExtensionRegistryReader(instance).readRegistry();
- }
- return instance;
- }
-
- public void put(String className, ClassLoader classLoader, List projectNatureIds, String resourceType, int stage, String priority) {
- if(projectNatureIds == null)
- projectNatureIds = new ArrayList();
- if(projectNatureIds.isEmpty())
+ public static final int STAGE_PRENORMALIZATION = 1;
+
+ public static final int STAGE_POSTNORMALIZATION = 2;
+
+ public static final int STAGE_PHYSICAL = 3;
+
+ public static final String PRIORITY_LOW = "low";
+
+ public static final String PRIORITY_MEDIUM = "medium";
+
+ public static final String PRIORITY_HIGH = "high";
+
+ protected final static String NULL_PROJECT_NATURE_ID = "";
+
+ protected static URIResolverExtensionRegistry instance;
+
+ private URIResolverExtensionRegistry()
+ {
+ }
+
+ /**
+ * Get the one and only instance of the registry.
+ *
+ * @return The one and only instance of the registry.
+ */
+ public synchronized static URIResolverExtensionRegistry getIntance()
+ {
+ if (instance == null)
{
- projectNatureIds.add(NULL_PROJECT_NATURE_ID);
+ instance = new URIResolverExtensionRegistry();
+ new URIResolverExtensionRegistryReader(instance).readRegistry();
}
- URIResolverExtensionDescriptor info = new URIResolverExtensionDescriptor(className, classLoader, projectNatureIds, resourceType, stage, priority);
-
- Iterator idsIter = projectNatureIds.iterator();
- while(idsIter.hasNext())
+ return instance;
+ }
+
+ /**
+ * Add an extension resolver to the registry.
+ *
+ * @param className The name of the extension URI resolver class.
+ * @param pluginId The ID of the plugin that contains the extension URI resolver class.
+ * @param projectNatureIds A list of project natures IDs for which the resolver should run.
+ * @param resourceType The type of resoure for which an extension resource should run.
+ * @param stage The stage to run. Either prenormalization or postnormalization.
+ * @param priority The priority of the resolver. Valid values are high, medium, and low.
+ */
+ public void put(String className, String pluginId, List projectNatureIds,
+ String resourceType, int stage, String priority)
+ {
+ if (projectNatureIds == null)
+ projectNatureIds = new ArrayList();
+ if (projectNatureIds.isEmpty())
{
- String key = (String)idsIter.next();
-
- HashMap priorityMap = (HashMap)map.get(key);
- if(priorityMap == null)
- {
- priorityMap = new HashMap();
- map.put(key, priorityMap);
- priorityMap.put(PRIORITY_HIGH, new ArrayList());
- priorityMap.put(PRIORITY_MEDIUM, new ArrayList());
- priorityMap.put(PRIORITY_LOW, new ArrayList());
- }
- List list = (List)priorityMap.get(priority);
- //List list = (List)map.get(key);
-// if (list == null)
-// {
-// list = new ArrayList();
-// priorityMap.put(priority, list);
-// }
-
- list.add(info);
+ projectNatureIds.add(NULL_PROJECT_NATURE_ID);
+ }
+ URIResolverExtensionDescriptor info = new URIResolverExtensionDescriptor(
+ className, pluginId, projectNatureIds, resourceType, stage, priority);
+
+ Iterator idsIter = projectNatureIds.iterator();
+ while (idsIter.hasNext())
+ {
+ String key = (String) idsIter.next();
+
+ HashMap priorityMap = (HashMap) map.get(key);
+ if (priorityMap == null)
+ {
+ priorityMap = new HashMap();
+ map.put(key, priorityMap);
+ priorityMap.put(PRIORITY_HIGH, new ArrayList());
+ priorityMap.put(PRIORITY_MEDIUM, new ArrayList());
+ priorityMap.put(PRIORITY_LOW, new ArrayList());
+ }
+ List list = (List) priorityMap.get(priority);
+ list.add(info);
}
}
-
-
+
/**
- * Return a list of URIResolverExtensionDescriptor objects that apply to this project. The list
- * is in the priority order high, medium, low.
+ * Return a list of URIResolverExtensionDescriptor objects that apply to this
+ * project. The list is in the priority order high, medium, low.
*
+ * @param project The project for which you are requesting resolvers.
+ * @return A list of URIResolverExtensionDescriptor objects.
*/
public List getExtensionDescriptors(IProject project)
{
List result = new ArrayList();
- for (Iterator i = map.keySet().iterator(); i.hasNext(); )
+ for (Iterator i = map.keySet().iterator(); i.hasNext();)
{
- String key = (String)i.next();
- try{
- if (key == NULL_PROJECT_NATURE_ID ||
- project == null ||
- project.hasNature(key))
- {
- result.addAll((List)((HashMap)map.get(key)).get(PRIORITY_HIGH));
- result.addAll((List)((HashMap)map.get(key)).get(PRIORITY_MEDIUM));
- result.addAll((List)((HashMap)map.get(key)).get(PRIORITY_LOW));
- }
+ String key = (String) i.next();
+ try
+ {
+ if (key == NULL_PROJECT_NATURE_ID || project == null
+ || project.hasNature(key))
+ {
+ result.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_HIGH));
+ result.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_MEDIUM));
+ result.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_LOW));
+ }
+ } catch (CoreException e)
+ {
}
- catch (CoreException e)
- {}
}
return result;
}
-
+
/**
* Return a list of URIResolver objects that match the stage.
+ * TODO: This seems like an odd method to house here. It may need to be moved
+ * or removed if the stage attribute dissapears.
*
- */
+ * @param resolverInfoList A list of resolvers to prune.
+ * @param stage The stage requested.
+ * @return A list of URIResolver objects that match the stage.
+ */
public List getMatchingURIResolvers(List resolverInfoList, int stage)
{
- List result = new ArrayList();
- for (Iterator i = resolverInfoList.iterator(); i.hasNext(); ){
- URIResolverExtensionDescriptor info = (URIResolverExtensionDescriptor)i.next();
+ List result = new ArrayList();
+ for (Iterator i = resolverInfoList.iterator(); i.hasNext();)
+ {
+ URIResolverExtensionDescriptor info = (URIResolverExtensionDescriptor) i
+ .next();
if (info.stage == stage)
- {
+ {
Object resolver = info.getResolver();
if (resolver != null)
- {
+ {
result.add(resolver);
- }
+ }
}
}
return result;
- }
-
-// public URIResolverExtension get(String key) {
-// URIResolverExtensionDescriptor info = (URIResolverExtensionDescriptor) map.get(key);
-// return info != null ? info.getResolver() : null;
-// }
-
-
-
- /*
- protected URIResolverExtensionDescriptor getMatchingURIResolverExtensionDescriptor(List list, String projectNatureId, String resourceType, int stage)
- {
- URIResolverExtensionDescriptor result = null;
- for (Iterator i = list.iterator(); i.hasNext(); )
- {
- URIResolverExtensionDescriptor info = (URIResolverExtensionDescriptor)i.next();
- if (info.matches(projectNatureId, resourceType, stage))
- {
- result = info;
- break;
- }
- }
- return result;
- }*/
+ }
}
-
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistryReader.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistryReader.java
index 35b3847..2557dc0 100644
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistryReader.java
+++ b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistryReader.java
@@ -1,15 +1,15 @@
-/*
-* Copyright (c) 2002 IBM Corporation and others.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Common Public License v1.0
-* which accompanies this distribution, and is available at
-* http://www.eclipse.org/legal/cpl-v10.html
-*
-* Contributors:
-* IBM - Initial API and implementation
-* Jens Lukowski/Innoopract - initial renaming/restructuring
-*
-*/
+/**
+ * Copyright (c) 2002 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ * Jens Lukowski/Innoopract - initial renaming/restructuring
+ *
+ */
package org.eclipse.wst.common.uriresolver.internal;
import java.util.ArrayList;
@@ -22,92 +22,116 @@
import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
/**
- * @author csalter
- *
-*/
-public class URIResolverExtensionRegistryReader {
+ * This class reads the URI resolver extension point and registers extension
+ * resolvers with the URI resolver registry.
+ */
+public class URIResolverExtensionRegistryReader
+{
- protected static final String EXTENSION_POINT_ID = "resolverExtensions";
- protected static final String TAG_NAME = "resolverExtension";
- protected static final String ATT_ID = "id";
- protected static final String ELEM_PROJECT_NATURE_ID = "projectNature";
- protected static final String ATT_RESOURCE_TYPE = "resourceType";
- protected static final String ATT_CLASS = "class";
- protected static final String ATT_STAGE = "stage";
- protected static final String VAL_STAGE_PRE = "prenormalization";
- protected static final String VAL_STAGE_POST = "postnormalization";
- protected static final String VAL_STAGE_PHYSICAL = "physical";
- protected static final String ATT_VALUE = "value";
- protected static final String ATT_PRIORITY = "priority";
-
+ protected static final String EXTENSION_POINT_ID = "resolverExtensions";
- protected URIResolverExtensionRegistry registry;
+ protected static final String TAG_NAME = "resolverExtension";
- public URIResolverExtensionRegistryReader(URIResolverExtensionRegistry registry) {
- this.registry = registry;
- }
+ protected static final String ATT_ID = "id";
- /**
- * read from plugin registry and parse it.
- */
- public void readRegistry() {
- IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
- IExtensionPoint point = pluginRegistry.getExtensionPoint(URIResolverPlugin.getInstance().getBundle().getSymbolicName(), EXTENSION_POINT_ID);
- if (point != null) {
- IConfigurationElement[] elements = point.getConfigurationElements();
- for (int i = 0; i < elements.length; i++) {
- readElement(elements[i]);
- }
+ protected static final String ELEM_PROJECT_NATURE_ID = "projectNature";
+
+ protected static final String ATT_RESOURCE_TYPE = "resourceType";
+
+ protected static final String ATT_CLASS = "class";
+
+ protected static final String ATT_STAGE = "stage";
+
+ protected static final String VAL_STAGE_PRE = "prenormalization";
+
+ protected static final String VAL_STAGE_POST = "postnormalization";
+
+ protected static final String VAL_STAGE_PHYSICAL = "physical";
+
+ protected static final String ATT_VALUE = "value";
+
+ protected static final String ATT_PRIORITY = "priority";
+
+ protected URIResolverExtensionRegistry registry;
+
+ public URIResolverExtensionRegistryReader(URIResolverExtensionRegistry registry)
+ {
+ this.registry = registry;
+ }
+
+ /**
+ * read from plugin registry and parse it.
+ */
+ public void readRegistry()
+ {
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint point = pluginRegistry.getExtensionPoint(URIResolverPlugin
+ .getInstance().getBundle().getSymbolicName(), EXTENSION_POINT_ID);
+ if (point != null)
+ {
+ IConfigurationElement[] elements = point.getConfigurationElements();
+ for (int i = 0; i < elements.length; i++)
+ {
+ readElement(elements[i]);
}
}
+ }
- /**
- * readElement() - parse and deal with an extension like:
- *
- * <extension point="org.eclipse.wst.contentmodel.util_implementation">
- * <util_implementation class = org.eclipse.wst.baseutil.CMUtilImplementationImpl />
- * </extension>
- */
- protected void readElement(IConfigurationElement element) {
- if (element.getName().equals(TAG_NAME)) {
- //String id = element.getAttribute(ATT_ID);
- String className = element.getAttribute(ATT_CLASS);
- //String projectNatureId = element.getAttribute(ATT_PROJECT_NATURE_ID);
- String resourceType = element.getAttribute(ATT_RESOURCE_TYPE);
- String stage = element.getAttribute(ATT_STAGE);
- String priority = element.getAttribute(ATT_PRIORITY);
- if(priority == null || priority.equals(""))
- {
- priority = URIResolverExtensionRegistry.PRIORITY_MEDIUM;
- }
- List projectNatureIds = new ArrayList();
- IConfigurationElement[] ids = element.getChildren(ELEM_PROJECT_NATURE_ID);
- int numids = ids.length;
- for(int i = 0; i < numids; i++)
+ /**
+ * readElement() - parse and deal with an extension like:
+ *
+ * <extension point="org.eclipse.wst.contentmodel.util_implementation">
+ * <util_implementation class =
+ * org.eclipse.wst.baseutil.CMUtilImplementationImpl /> </extension>
+ */
+ protected void readElement(IConfigurationElement element)
+ {
+ if (element.getName().equals(TAG_NAME))
+ {
+ // String id = element.getAttribute(ATT_ID);
+ String className = element.getAttribute(ATT_CLASS);
+ // String projectNatureId = element.getAttribute(ATT_PROJECT_NATURE_ID);
+ String resourceType = element.getAttribute(ATT_RESOURCE_TYPE);
+ String stage = element.getAttribute(ATT_STAGE);
+ String priority = element.getAttribute(ATT_PRIORITY);
+ if (priority == null || priority.equals(""))
+ {
+ priority = URIResolverExtensionRegistry.PRIORITY_MEDIUM;
+ }
+ List projectNatureIds = new ArrayList();
+ IConfigurationElement[] ids = element.getChildren(ELEM_PROJECT_NATURE_ID);
+ int numids = ids.length;
+ for (int i = 0; i < numids; i++)
+ {
+ String tempid = ids[i].getAttribute(ATT_VALUE);
+
+ if (tempid != null)
{
- String tempid = ids[i].getAttribute(ATT_VALUE);
-
- if(tempid != null)
- {
- projectNatureIds.add(tempid);
- }
+ projectNatureIds.add(tempid);
}
- if (className != null) {
- try {
- ClassLoader classLoader = element.getDeclaringExtension().getDeclaringPluginDescriptor().getPlugin().getClass().getClassLoader();
- int stageint = URIResolverExtensionRegistry.STAGE_POSTNORMALIZATION;
- if(stage.equalsIgnoreCase(VAL_STAGE_PRE))
- {
- stageint = URIResolverExtensionRegistry.STAGE_PRENORMALIZATION;
- }
- else if (stage.equalsIgnoreCase(VAL_STAGE_PHYSICAL))
- {
- stageint = URIResolverExtensionRegistry.STAGE_PHYSICAL;
- }
- registry.put(className, classLoader, projectNatureIds, resourceType, stageint, priority);
- } catch (Exception e) {
+ }
+ if (className != null)
+ {
+ try
+ {
+ String pluginId = element.getDeclaringExtension().getNamespace();
+
+ int stageint = URIResolverExtensionRegistry.STAGE_POSTNORMALIZATION;
+ if (stage.equalsIgnoreCase(VAL_STAGE_PRE))
+ {
+ stageint = URIResolverExtensionRegistry.STAGE_PRENORMALIZATION;
+ } else if (stage.equalsIgnoreCase(VAL_STAGE_PHYSICAL))
+ {
+ stageint = URIResolverExtensionRegistry.STAGE_PHYSICAL;
}
+ registry.put(className, pluginId, projectNatureIds, resourceType,
+ stageint, priority);
+ } catch (Exception e)
+ {
+ // TODO: Log exception as this will cause an extension resolver
+ // from loading.
}
}
}
}
+}
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/provisional/URIResolverPlugin.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/provisional/URIResolverPlugin.java
index 5b650c4..7c01b80 100644
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/provisional/URIResolverPlugin.java
+++ b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/provisional/URIResolverPlugin.java
@@ -13,7 +13,7 @@
package org.eclipse.wst.common.uriresolver.internal.provisional;
import java.util.Map;
-import org.eclipse.core.runtime.IPluginDescriptor;
+
import org.eclipse.core.runtime.Plugin;
import org.eclipse.wst.common.uriresolver.internal.ExtensibleURIResolver;
import org.eclipse.wst.common.uriresolver.internal.URIResolverExtensionRegistry;
@@ -28,8 +28,8 @@
return instance;
}
- public URIResolverPlugin(IPluginDescriptor descriptor) {
- super(descriptor);
+ public URIResolverPlugin() {
+ super();
instance = this;
}