[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