[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core ...
Robert Stryker
rawblem at gmail.com
Thu Dec 21 20:08:40 EST 2006
User: rawb
Date: 06/12/21 20:08:40
Modified: core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core
ExtensionManager.java
Log:
The Extension Manager had several errors. It used the incorrect method of instantiating a provided class (Class.forName led to class not found errors. configElement.createExecutable("attribute") is the proper method)
It also assumed all provided classes would be of type AbstractPackageType, instead of IPackageType. It then made use of methods not present in IPackageType (setId, setLabel). I've removed all references to AbstractPackageType, the JARPackageType now directly returns its information (jar, JAR), and the extension point data is essentially ignored.
Suck It.
Revision Changes Path
1.3 +9 -7 jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/ExtensionManager.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ExtensionManager.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/ExtensionManager.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- ExtensionManager.java 21 Nov 2006 16:15:24 -0000 1.2
+++ ExtensionManager.java 22 Dec 2006 01:08:40 -0000 1.3
@@ -2,13 +2,13 @@
import java.util.ArrayList;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.InvalidRegistryObjectException;
import org.eclipse.core.runtime.Platform;
-import org.jboss.ide.eclipse.packages.core.model.types.AbstractPackageType;
import org.jboss.ide.eclipse.packages.core.model.types.IPackageType;
public class ExtensionManager {
@@ -32,12 +32,10 @@
for (int j = 0; j < elements.length; j++)
{
try {
- Class packageTypeClass = Class.forName(elements[j].getAttribute("class"));
- AbstractPackageType packageType = (AbstractPackageType) packageTypeClass.newInstance();
- packageType.setId(elements[j].getAttribute("id"));
- packageType.setLabel(elements[j].getAttribute("label"));
-
- packageTypes.add(packageType);
+ Object executable = elements[j].createExecutableExtension("class");
+ if( !(executable instanceof IPackageType))
+ throw new Exception("Provided class is not an IPackageType");
+ packageTypes.add((IPackageType)executable);
} catch (InvalidRegistryObjectException e) {
Trace.trace(ExtensionManager.class, e);
} catch (ClassNotFoundException e) {
@@ -46,6 +44,10 @@
Trace.trace(ExtensionManager.class, e);
} catch (IllegalAccessException e) {
Trace.trace(ExtensionManager.class, e);
+ } catch( CoreException e ) {
+ Trace.trace(ExtensionManager.class, e);
+ } catch( Exception e ) {
+ Trace.trace(ExtensionManager.class, e);
}
}
}
More information about the jboss-cvs-commits
mailing list