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

Marshall Culpepper mculpepper at jboss.com
Thu Mar 8 17:32:27 EST 2007


  User: mculpepper
  Date: 07/03/08 17:32:27

  Modified:    as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model 
                        PackagesListener.java
  Log:
  changesOrAdditions lists are now lazily created, and we implement the new packageBuildTypeChanged build event
  
  Revision  Changes    Path
  1.3       +31 -46    jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model/PackagesListener.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PackagesListener.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model/PackagesListener.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- PackagesListener.java	8 Mar 2007 00:06:14 -0000	1.2
  +++ PackagesListener.java	8 Mar 2007 22:32:27 -0000	1.3
  @@ -24,12 +24,9 @@
   import java.util.ArrayList;
   import java.util.HashMap;
   
  -import org.eclipse.core.resources.IProject;
   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.wst.server.core.IModule;
   import org.eclipse.wst.server.core.IServer;
   import org.eclipse.wst.server.core.ServerCore;
  @@ -40,24 +37,18 @@
   import org.jboss.ide.eclipse.as.core.server.attributes.IDeployableServer;
   import org.jboss.ide.eclipse.as.core.server.stripped.DeployableServerBehavior;
   import org.jboss.ide.eclipse.as.core.util.FileUtil;
  +import org.jboss.ide.eclipse.core.util.ResourceUtil;
   import org.jboss.ide.eclipse.packages.core.model.AbstractPackagesBuildListener;
   import org.jboss.ide.eclipse.packages.core.model.IPackage;
   import org.jboss.ide.eclipse.packages.core.model.IPackageFileSet;
  -import org.jboss.ide.eclipse.packages.core.model.IPackageNode;
  -import org.jboss.ide.eclipse.packages.core.model.IPackagesModelListener;
   import org.jboss.ide.eclipse.packages.core.model.PackagesCore;
  -import org.jboss.ide.eclipse.packages.core.project.build.TruezipUtil;
  -import org.jboss.ide.eclipse.core.util.ResourceUtil;
  -
  -import de.schlichtherle.io.ArchiveDetector;
  -import de.schlichtherle.io.File;
   
   /**
    *
    * @author rob.stryker at jboss.com
    * This class is teh suck. I dont even know whether to keep it
    */
  -public class PackagesListener extends AbstractPackagesBuildListener implements IPackagesModelListener {
  +public class PackagesListener extends AbstractPackagesBuildListener {
   
   	public static PackagesListener instance;
   	public static final String DEPLOY_SERVERS = "org.jboss.ide.eclipse.as.core.model.PackagesListener.DeployServers";
  @@ -80,22 +71,32 @@
   	}
   	
   	public void startedBuildingPackage(IPackage pkg) {
  -		if( pkg.isTopLevel() ) {
  -			changesOrAdditions.put(pkg, new ArrayList());
  -			removals.put(pkg, new ArrayList());
  -		}
  +//		if( pkg.isTopLevel() ) {
  +//			changesOrAdditions.put(pkg, new ArrayList());
  +//			removals.put(pkg, new ArrayList());
  +//		}
   	}
   
   	public void fileRemoved(IPackage topLevelPackage, IPackageFileSet fileset, IPath filePath) {
   		// make absolute
   		IPath filePath2 = makeAbsolute(filePath, topLevelPackage); // change
   		ArrayList removes = (ArrayList)removals.get(topLevelPackage);
  +		if (removes == null) {
  +			removes = new ArrayList();
  +			changesOrAdditions.put(topLevelPackage, removes);
  +		}
  +		
   		if( !removes.contains(filePath2)) removes.add(filePath2);
   	}
   	public void fileUpdated(IPackage topLevelPackage, IPackageFileSet fileset, IPath filePath) {
   		// make absolute
   		IPath filePath2 = makeAbsolute(filePath, topLevelPackage); // change
   		ArrayList changes = (ArrayList)changesOrAdditions.get(topLevelPackage);
  +		if (changes == null) {
  +			changes = new ArrayList();
  +			changesOrAdditions.put(topLevelPackage, changes);
  +		}
  +		
   		if( !changes.contains(filePath2)) changes.add(filePath2);
   	}
   
  @@ -117,15 +118,15 @@
   	// If we're supposed to auto-deploy, get on it
   	protected static void publish(IPackage pkg) {
   		String servers = pkg.getProperty(PackagesListener.DEPLOY_SERVERS);
  -		publish(pkg, servers);
  +		publish(pkg, servers, IServer.PUBLISH_INCREMENTAL);
   	} 
  -	public static void publish(IPackage pkg, String servers) {
  +	public static void publish(IPackage pkg, String servers, int publishType) {
   		IModule[] module = getModule(pkg);
   		if( module[0] == null ) return; 
   		DeployableServerBehavior[] serverBehaviors = PackagesListener.getServers(servers);
   		if( serverBehaviors != null ) {
   			for( int i = 0; i < serverBehaviors.length; i++ ) {
  -				serverBehaviors[i].publishOneModule(IServer.PUBLISH_INCREMENTAL, module, ServerBehaviourDelegate.CHANGED, new NullProgressMonitor());
  +				serverBehaviors[i].publishOneModule(publishType, module, ServerBehaviourDelegate.CHANGED, new NullProgressMonitor());
   			}
   		}
   	}
  @@ -173,35 +174,19 @@
   	 * If a node is changing from exploded to imploded, or vice versa
   	 * make sure to delete the pre-existing file or folder on the server. 
   	 */
  -	public void packageNodeChanged(IPackageNode changed) {
  -		if (changed.getNodeType() == IPackageNode.TYPE_PACKAGE
  -			|| changed.getNodeType() == IPackageNode.TYPE_PACKAGE_REFERENCE)
  -		{
  -			IPackage pkg = (IPackage) changed;
  -			File packageFile = TruezipUtil.getPackageFile(pkg);
  -			
  -			if ( (packageFile.getDelegate().isFile() && pkg.isExploded()) 
  -					|| (packageFile.getDelegate().isDirectory() && !pkg.isExploded())) {
  -				
  -				String servers = pkg.getProperty(PackagesListener.DEPLOY_SERVERS);
  +	public void packageBuildTypeChanged(IPackage topLevelPackage, boolean isExploded) {
  +		String servers = topLevelPackage.getProperty(PackagesListener.DEPLOY_SERVERS);
   				DeployableServerBehavior[] serverBehaviors = PackagesListener.getServers(servers);
   				if( serverBehaviors != null ) {
   					IPath sourcePath, destPath;
   					IDeployableServer depServer;
   					for( int i = 0; i < serverBehaviors.length; i++ ) {
  -						sourcePath = pkg.getPackageFilePath();
  +				sourcePath = topLevelPackage.getPackageFilePath();
   						depServer = getDeployableServerFromBehavior(serverBehaviors[i]);
   						destPath = new Path(depServer.getDeployDirectory()).append(sourcePath.lastSegment());
   						boolean success = FileUtil.safeDelete(destPath.toFile());
  +				FileUtil.fileSafeCopy(sourcePath.toFile(), destPath.toFile());
   					}
   				}
  -				
  -			}
   		}
  -	}
  -	
  -	public void packageNodeAdded(IPackageNode added) {	}
  -	public void packageNodeAttached(IPackageNode attached) {	}
  -	public void packageNodeRemoved(IPackageNode removed) {	}
  -	public void projectRegistered(IProject project) { }
   }
  
  
  



More information about the jboss-cvs-commits mailing list