[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/module ...

Robert Stryker rawblem at gmail.com
Thu Feb 15 09:52:03 EST 2007


  User: rawb    
  Date: 07/02/15 09:52:03

  Modified:    as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/module   
                        PackagedArtifactAdapter.java
  Added:       as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/module   
                        PackageModuleFactory.java
  Removed:     as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/module   
                        PackagedProjectModuleFactory.java
  Log:
  Further updates to integrating with packaging. Still not entirely complete. 
  
  Revision  Changes    Path
  1.2       +7 -7      jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/module/PackagedArtifactAdapter.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PackagedArtifactAdapter.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/module/PackagedArtifactAdapter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- PackagedArtifactAdapter.java	28 Nov 2006 17:29:30 -0000	1.1
  +++ PackagedArtifactAdapter.java	15 Feb 2007 14:52:03 -0000	1.2
  @@ -15,7 +15,7 @@
   	public PackagedArtifactAdapter() {
   	}
   
  -	private PackagedProjectModuleFactory factory;
  +	private PackageModuleFactory factory;
   	public IModuleArtifact getModuleArtifact(Object obj) {
   		if( obj instanceof IJavaProject ) {
   			IProject[] projects2 = ResourcesPlugin.getWorkspace().getRoot().getProjects();
  @@ -29,7 +29,7 @@
   			}
   		} 
   		if( obj instanceof IProject ) {
  -			PackagedProjectModuleFactory factory = getFactory();
  +			PackageModuleFactory factory = getFactory();
   			if( factory != null ) {
   				IModule mod = factory.getModuleFromProject((IProject)obj);
   				if( mod != null ) {
  @@ -40,17 +40,17 @@
   		return null;
   	}
   	
  -	protected PackagedProjectModuleFactory getFactory() {
  +	protected PackageModuleFactory getFactory() {
   		if( factory != null ) return factory;
   		
   		ModuleFactory[] factories = ServerPlugin.getModuleFactories();
  -		System.out.println(PackagedProjectModuleFactory.FACTORY_TYPE_ID);
  +		System.out.println(PackageModuleFactory.FACTORY_TYPE_ID);
   		for( int i = 0; i < factories.length; i++ ) {
   			System.out.println("  " + factories[i].getId());
  -			if( factories[i].getId().equals(PackagedProjectModuleFactory.FACTORY_TYPE_ID)) {
  +			if( factories[i].getId().equals(PackageModuleFactory.FACTORY_TYPE_ID)) {
   				Object o = factories[i].getDelegate(new NullProgressMonitor());
  -				if( o instanceof PackagedProjectModuleFactory ) {
  -					factory = (PackagedProjectModuleFactory)o;
  +				if( o instanceof PackageModuleFactory ) {
  +					factory = (PackageModuleFactory)o;
   					return factory;
   				}
   			}
  
  
  
  1.1      date: 2007/02/15 14:52:03;  author: rawb;  state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/module/PackageModuleFactory.java
  
  Index: PackageModuleFactory.java
  ===================================================================
  /**
   * JBoss, a Division of Red Hat
   * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
  * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
   * the License, or (at your option) any later version.
   *
   * This software is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
   * License along with this software; if not, write to the Free
   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
   */
  package org.jboss.ide.eclipse.as.core.module;
  
  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.Map;
  
  import org.eclipse.core.resources.IProject;
  import org.eclipse.core.runtime.CoreException;
  import org.eclipse.core.runtime.IPath;
  import org.eclipse.core.runtime.IStatus;
  import org.eclipse.core.runtime.NullProgressMonitor;
  import org.eclipse.core.runtime.Path;
  import org.eclipse.core.runtime.Status;
  import org.eclipse.wst.server.core.IModule;
  import org.eclipse.wst.server.core.model.IModuleResource;
  import org.eclipse.wst.server.core.model.ModuleDelegate;
  import org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate;
  import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
  import org.jboss.ide.eclipse.packages.core.model.IPackage;
  import org.jboss.ide.eclipse.packages.core.model.PackagesCore;
  import org.jboss.ide.eclipse.packages.core.model.internal.PackagesModel;
  
  /**
   *
   * @author rob.stryker at jboss.com
   */
  public class PackageModuleFactory extends ProjectModuleFactoryDelegate {
  	protected Map moduleDelegates = new HashMap(5);
  	protected HashMap projectsToModule = new HashMap(5);
  	
  	public static final String FACTORY_TYPE_ID = "org.jboss.ide.eclipse.as.core.PackageModuleFactory";
  	public static final String MODULE_TYPE = "jboss.package";
  	public static final String VERSION = "1.0";
  
  	public PackageModuleFactory() {
  		super();
  	}
  	
  	protected IModule[] createModules(IProject project) {
  		if( PackagesCore.projectHasPackages(project) ) {
  			ArrayList list = new ArrayList();
  			IModule module;
  			IPackage[] packages = PackagesCore.getProjectPackages(project, new NullProgressMonitor());
  			for( int i = 0; i < packages.length; i++ ) {
  				module = createModule(getID(packages[i]), getName(packages[i]),						 
  						MODULE_TYPE, VERSION, project);
  				list.add(module);
  				Object moduleDelegate = new PackagedModuleDelegate();
  				moduleDelegates.put(module, moduleDelegate);
  				projectsToModule.put(project, module);
  			}
  			return (IModule[]) list.toArray(new IModule[list.size()]);
  		}
  		return null;
  	}
  	
  	public static String getID(IPackage pack) {
  		String path = pack.isDestinationInWorkspace() ? pack.getPackageFile().getLocation().toOSString() : pack.getPackageFilePath().toFile().getAbsolutePath();
  		return pack.getProject().getName() + ":" + path;
  		//return pack.getProject().getName() + ":" + pack.getPackageFilePath();
  	}
  
  	public static String getName(IPackage pack) {
  		return pack.getProject().getName() + "/" + pack.getName();
  	}
  	public ModuleDelegate getModuleDelegate(IModule module) {
  		return (ModuleDelegate) moduleDelegates.get(module);
  	}
  
  
  	protected void clearCache() {
  		moduleDelegates = new HashMap(5);
  		projectsToModule = new HashMap(5);
  	}
  	
  	public IModule getModuleFromProject(IProject project) {
  		getModules(); // prime it
  		return (IModule)projectsToModule.get(project);
  	}
  	
  	/**
  	 * Returns the list of resources that the module should listen to
  	 * for state changes. The paths should be project relative paths.
  	 * Subclasses can override this method to provide the paths.
  	 *
  	 * @return a possibly empty array of paths
  	 */
  	protected IPath[] getListenerPaths() {
  		return new IPath[] { new Path(PackagesModel.PROJECT_PACKAGES_FILE) };
  	}
  
  	public class PackagedModuleDelegate extends ModuleDelegate {
  
  		public IModule[] getChildModules() {
  			return new IModule[0];
  		}
  
  		public IModuleResource[] members() throws CoreException {
  			return new IModuleResource[0];
  		}
  
  		public IStatus validate() {
  			return new Status(IStatus.OK, JBossServerCorePlugin.PLUGIN_ID, 
  					0, "", null);
  		}
  	}
  }
  
  
  



More information about the jboss-cvs-commits mailing list