[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util ...

Robert Stryker rob.stryker at jboss.com
Wed Apr 18 21:20:13 EDT 2007


  User: rawb    
  Date: 07/04/18 21:20:13

  Modified:    core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util  
                        TrueZipUtil.java ModelTruezipBridge.java
  Log:
  Changes limit the amount of writing that must be done per build / model change. Postponed until the end. 
  
  Revision  Changes    Path
  1.2       +8 -3      jbosside/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/TrueZipUtil.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: TrueZipUtil.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/TrueZipUtil.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- TrueZipUtil.java	18 Apr 2007 21:07:52 -0000	1.1
  +++ TrueZipUtil.java	19 Apr 2007 01:20:13 -0000	1.2
  @@ -116,16 +116,21 @@
   	}
   	
   	/**
  -	 * Sync's with file system after executing
  -	 * @param run
  +	 * Sync's with file system after executing a runnable
  +	 * @param run Runnable or null
   	 */
   	public static void syncExec(Runnable run) {
   		try {
  +			if( run != null )
   			run.run();
   		} catch (Exception e ) {}
   		umount();
   	}
   	
  +	public static void sync() {
  +		syncExec(null);
  +	}
  +	
   	public static void updateParentTimestamps(IPath path) {
   		updateParentTimestamps(getFile(path));
   	}
  
  
  
  1.2       +89 -55    jbosside/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelTruezipBridge.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ModelTruezipBridge.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelTruezipBridge.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- ModelTruezipBridge.java	18 Apr 2007 21:07:52 -0000	1.1
  +++ ModelTruezipBridge.java	19 Apr 2007 01:20:13 -0000	1.2
  @@ -26,16 +26,8 @@
   public class ModelTruezipBridge {
   	public static void deleteArchive(IArchive archive) {
   		final File file = getFile(archive);
  -		TrueZipUtil.syncExec(new Runnable() {
  -			public void run() {
   				file.deleteAll();
  -			}
  -		});
  -	}
  -	
  -	public static void createContainer(IArchiveNode node) {
  -		File f = getFile(node);
  -		f.mkdirs();
  +		TrueZipUtil.sync();
   	}
   	
   	public static void deleteFolder(IArchiveFolder folder) {
  @@ -44,67 +36,126 @@
   	}
   	
   	public static void deleteFolder(IArchiveFolder folder, IArchiveFileSet[] filesets) {
  -		// remove all files from filesets
  -		for( int i = 0; i < filesets.length; i++ )
  -			fullFilesetRemove(filesets[i]);
  -		
  +		deleteFolder(folder, filesets, true);
  +	}
  +	public static void deleteFolder(final IArchiveFolder folder, final IArchiveFileSet[] filesets, boolean sync) {
  +		fullFilesetsRemove(filesets, false);
   		final File file = getFile(folder);
  -		TrueZipUtil.syncExec(new Runnable() {
  -			public void run() {
   				TrueZipUtil.deleteEmptyFolders(file);
  -			}
  -		});
  +		if( sync )
  +			TrueZipUtil.sync();
   	}
   	
   	public static void fullFilesetBuild(IArchiveFileSet fileset) {
  +		fullFilesetBuild(fileset, true);
  +	}
  +	public static void fullFilesetBuild(final IArchiveFileSet fileset, boolean sync) {
   		fileset.resetScanner();
   		IPath[] paths = fileset.findMatchingPaths();
  -		ModelTruezipBridge.copyFiles(fileset, paths);
  +		copyFiles(fileset, paths, false);
  +		if( sync )
  +			TrueZipUtil.sync();
  +	}
  +		
  +	public static void fullFilesetsRemove(IArchiveFileSet[] filesets) {
  +		fullFilesetsRemove(filesets, true);
  +	}
  +	public static void fullFilesetsRemove(IArchiveFileSet[] filesets, boolean sync) {
  +		for( int i = 0; i < filesets.length; i++ )
  +			fullFilesetRemove(filesets[i], false);
  +		if( sync )
  +			TrueZipUtil.sync();
   	}
   		
   	public static void fullFilesetRemove(IArchiveFileSet fileset) {
  +		fullFilesetRemove(fileset, true);
  +	}
  +	public static void fullFilesetRemove(final IArchiveFileSet fileset, boolean sync) {
   		IPath[] paths = fileset.findMatchingPaths();
   		for( int i = 0; i < paths.length; i++ ) {
   			if( !ModelUtil.otherFilesetMatchesPath(fileset, paths[i])) {
   				// remove
  -				ModelTruezipBridge.deleteFiles(fileset, new IPath[] {paths[i]});
  +				deleteFiles(fileset, new IPath[] {paths[i]}, false);
   			}
   		}
  +
  +		if( sync ) 
  +			TrueZipUtil.sync();
   	}
   
   	
   	public static void copyFiles(IArchiveFileSet[] filesets, IPath[] paths) {
  +		copyFiles(filesets, paths, true);
  +	}
  +	
  +	public static void copyFiles(final IArchiveFileSet[] filesets, final IPath[] paths, boolean sync) {
   		for( int i = 0; i < filesets.length; i++ ) {
  -			copyFiles(filesets[i], paths);
  +			copyFiles(filesets[i], paths, false);
   		}
  +		if( sync ) 
  +			TrueZipUtil.sync();
  +		
   	}
   	
   	public static void copyFiles(IArchiveFileSet fileset, final IPath[] paths) {
  +		copyFiles(fileset, paths, true);
  +	}
  +	public static void copyFiles(IArchiveFileSet fileset, final IPath[] paths, boolean sync) {
   		final File[] destFiles = getFiles(paths, fileset);
  -		TrueZipUtil.syncExec(new Runnable() {
  -			public void run() {
   				for( int i = 0; i < paths.length; i++ ) {
   					TrueZipUtil.copyFile(paths[i].toOSString(), destFiles[i]);
   				}
  -			}
  -		});
  +		if( sync ) 
  +			TrueZipUtil.sync();
   	}
   	
  +	
  +	/*
  +	 * Deleting files
  +	 */
   	public static void deleteFiles(IArchiveFileSet[] filesets, IPath[] paths ) {
  +		deleteFiles(filesets, paths, true);
  +	}
  +	public static void deleteFiles(final IArchiveFileSet[] filesets, final IPath[] paths, boolean sync ) {
   		for( int i = 0; i < filesets.length; i++ ) {
  -			deleteFiles(filesets[i], paths);
  +			deleteFiles(filesets[i], paths, false);
   		}
  +		if( sync ) 
  +			TrueZipUtil.sync();
   	}
  +	
   	public static void deleteFiles(IArchiveFileSet fileset, final IPath[] paths ) {
  +		deleteFiles(fileset, paths, true);
  +	}
  +	public static void deleteFiles(IArchiveFileSet fileset, final IPath[] paths, boolean sync ) {
   		final File[] destFiles = getFiles(paths, fileset);
  -		TrueZipUtil.syncExec(new Runnable() {
  -			public void run() {
   				for( int i = 0; i < paths.length; i++ ) {
   					TrueZipUtil.deleteAll(destFiles[i]);
   				}
  +		
  +		if( sync ) 	
  +			TrueZipUtil.sync();
  +	}
  +	
  +	
  +	/**
  +	 * Creates the file, folder, or archive represented by the node.
  +	 * Does nothing for filesets
  +	 * @param node
  +	 */
  +	public static void createFile(final IArchiveNode node) {
  +		createFile(node, true);
   			}
  -		});
  +	public static void createFile(final IArchiveNode node, boolean sync) {
  +		File f = getFile(node);
  +		if( f != null ) {
  +			f.mkdirs();
   	}
  +		if( sync ) 
  +			TrueZipUtil.sync();
  +	}
  +	
  +
   	
   	/**
   	 * Gets all properly-created de.sch files for a fileset
  @@ -158,21 +209,4 @@
   		return null;
   	}
   	
  -	
  -	/**
  -	 * Creates the file, folder, or archive represented by the node.
  -	 * Does nothing for filesets
  -	 * @param node
  -	 */
  -	public static void createFile(final IArchiveNode node) {
  -		TrueZipUtil.syncExec(new Runnable() {
  -			public void run() {
  -				File f = getFile(node);
  -				if( f != null ) {
  -					f.mkdirs();
  -				}
  -			}
  -		});
  -	}
  -	
   }
  
  
  



More information about the jboss-cvs-commits mailing list