[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/project/build ...

Marshall Culpepper mculpepper at jboss.com
Fri Mar 2 16:54:44 EST 2007


  User: mculpepper
  Date: 07/03/02 16:54:44

  Modified:    core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/project/build 
                        BuildFileOperations.java
  Log:
  added a "refreshPackage" method in hopes to fix some resource synch issues with exploded<->compressed in the workspace.. this is still a WIP
  
  Revision  Changes    Path
  1.5       +34 -3     jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/project/build/BuildFileOperations.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: BuildFileOperations.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/project/build/BuildFileOperations.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- BuildFileOperations.java	1 Mar 2007 16:50:55 -0000	1.4
  +++ BuildFileOperations.java	2 Mar 2007 21:54:44 -0000	1.5
  @@ -12,6 +12,7 @@
   import org.apache.tools.ant.DirectoryScanner;
   import org.eclipse.core.resources.IFile;
   import org.eclipse.core.resources.IResource;
  +import org.eclipse.core.runtime.CoreException;
   import org.eclipse.core.runtime.IPath;
   import org.eclipse.core.runtime.NullProgressMonitor;
   import org.eclipse.core.runtime.Path;
  @@ -33,7 +34,7 @@
   
   	private PackageBuildDelegate builder;
   	private Hashtable scannerCache;
  -	private NullProgressMonitor nullMonitor = new NullProgressMonitor();
  +	private static NullProgressMonitor nullMonitor = new NullProgressMonitor();
   	
   	public BuildFileOperations (PackageBuildDelegate builder)
   	{
  @@ -65,6 +66,8 @@
   					
   					IPath destPath = new Path(packagedFile.getAbsolutePath());
   					builder.getEvents().fireFileRemoved(topLevelPackages[j], filesets[i], destPath);
  +					
  +					BuildFileOperations.refreshPackage(topLevelPackages[j]);
   				}
   			}
   		}	
  @@ -120,6 +123,8 @@
   						
   						IPath destPath = new Path(packageFiles[j].getAbsolutePath());
   						builder.getEvents().fireFileUpdated(topLevelPackages[j], filesets[i], destPath);
  +						
  +						BuildFileOperations.refreshPackage(topLevelPackages[j]);
   					} catch (FileNotFoundException e) {
   						Trace.trace(getClass(), e);
   					} catch (IOException e) {
  @@ -359,6 +364,7 @@
   			// File name was changed, rename
   			File newPackageFile = new File(packageFile.getParent(), pkg.getName());
   			packageFile.renameTo(newPackageFile, packageFile.getArchiveDetector());
  +			TruezipUtil.umount(newPackageFile);
   		}
   		else if (packageFile.getDelegate().isFile() && pkg.isExploded())
   		{
  @@ -368,14 +374,21 @@
   			
   			packageFile.renameTo(tmpFile, ArchiveDetector.NULL);
   			tmpFile.renameTo(newPackageFile, ArchiveDetector.NULL);
  +			
  +			// can't umount a non-package file
   		}
   		else if (packageFile.getDelegate().isDirectory() && !pkg.isExploded())
   		{
   			//	Changed to compressed from exploded
   			File tmpFile = new File(packageFile.getParent(), "_tmp_" + pkg.getName());
  -			packageFile.renameTo(tmpFile, ArchiveDetector.DEFAULT);
  -			tmpFile.renameTo(packageFile, ArchiveDetector.DEFAULT);
  +			File newPackageFile = new File(packageFile.getParent(), pkg.getName());
  +			
  +			packageFile.renameTo(tmpFile);
  +			tmpFile.renameTo(newPackageFile, ArchiveDetector.DEFAULT);
  +			TruezipUtil.umount(newPackageFile);
   		}
  +		
  +		refreshPackage(pkg);
   	}
   	
   	public void changeFileset (IPackageFileSet fileset)
  @@ -406,4 +419,22 @@
   		
   		updateScannerCache(fileset);
   	}
  +	
  +	public static void refreshPackage (IPackage pkg)
  +	{
  +		if (pkg.isDestinationInWorkspace())
  +		{
  +			try {
  +				if (pkg.getPackageResource() != null)
  +				{
  +					pkg.getPackageResource().clearHistory(nullMonitor);
  +					pkg.getPackageResource().refreshLocal(IResource.DEPTH_INFINITE, nullMonitor);
  +				}
  +				pkg.getDestinationContainer().clearHistory(nullMonitor);
  +				pkg.getDestinationContainer().refreshLocal(IResource.DEPTH_INFINITE, nullMonitor);
  +			} catch (CoreException e) {
  +				Trace.trace(BuildFileOperations.class, e);
  +			}
  +		}
  +	}
   }
  
  
  



More information about the jboss-cvs-commits mailing list