[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