[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers ...
Robert Stryker
rob.stryker at jboss.com
Mon Feb 26 16:20:58 EST 2007
User: rawb
Date: 07/02/26 16:20:58
Modified: as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers
PackagesPublisher.java
Log:
Integrating with packaging
Revision Changes Path
1.9 +41 -38 jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PackagesPublisher.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- PackagesPublisher.java 23 Feb 2007 21:57:32 -0000 1.8
+++ PackagesPublisher.java 26 Feb 2007 21:20:58 -0000 1.9
@@ -22,27 +22,24 @@
package org.jboss.ide.eclipse.as.core.publishers;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
-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.model.ServerBehaviourDelegate;
import org.jboss.ide.eclipse.as.core.model.EventLogModel;
+import org.jboss.ide.eclipse.as.core.model.PackagesBuildListener;
import org.jboss.ide.eclipse.as.core.model.EventLogModel.EventLogRoot;
import org.jboss.ide.eclipse.as.core.model.EventLogModel.EventLogTreeItem;
import org.jboss.ide.eclipse.as.core.module.PackageModuleFactory.PackagedModuleDelegate;
import org.jboss.ide.eclipse.as.core.server.attributes.IDeployableServer;
import org.jboss.ide.eclipse.as.core.util.FileUtil;
import org.jboss.ide.eclipse.as.core.util.SimpleTreeItem;
+import org.jboss.ide.eclipse.core.util.ResourceUtil;
import org.jboss.ide.eclipse.packages.core.model.IPackage;
-import org.jboss.ide.eclipse.packages.core.model.PackagesCore;
/**
*
@@ -111,28 +108,11 @@
for( int i = 0; i < module.length; i++ ) {
PackagedModuleDelegate delegate = (PackagedModuleDelegate)module[i].loadAdapter(PackagedModuleDelegate.class, new NullProgressMonitor());
IPackage pack = delegate.getPackage();
- try {
-
- if( pack.isDestinationInWorkspace()) {
IFile file = pack.getPackageFile();
IPath sourcePath = file.getLocation();
IPath destPath = new Path(server.getDeployDirectory()).append(sourcePath.lastSegment());
- boolean success = destPath.toFile().delete();
+ boolean success = FileUtil.safeDelete(destPath.toFile());
addRemoveEvent(event, pack, destPath, success ? SUCCESS : FAILURE);
- } else {
- IPath path = pack.getPackageFilePath();
- Path deployDir = new Path(server.getDeployDirectory());
- if( path.toOSString().startsWith(deployDir.toOSString())) {
- boolean success = path.toFile().delete();
- addRemoveEvent(event, pack, path, success ? SUCCESS : FAILURE);
- } else {
- addRemoveEvent(event, pack, path, SKIPPED, null);
- }
- }
- } catch( Exception e ) {
- IPath dest = pack.getPackageFile().getLocation();
- addRemoveEvent(event, pack, dest, FAILURE, e);
- }
}
}
@@ -144,19 +124,42 @@
for( int i = 0; i < module.length; i++ ) {
PackagedModuleDelegate delegate = (PackagedModuleDelegate)module[i].loadAdapter(PackagedModuleDelegate.class, new NullProgressMonitor());
IPackage pack = delegate.getPackage();
- if( pack.isDestinationInWorkspace()) {
- // destination is workspace. Move it.
- IFile file = pack.getPackageFile();
- IPath sourcePath = file.getLocation();
- IPath destPath = new Path(server.getDeployDirectory()).append(sourcePath.lastSegment());
- IStatus status = FileUtil.copyFile(sourcePath.toFile(), destPath.toFile());
- addMoveEvent(event, pack, pack.isDestinationInWorkspace(), sourcePath, destPath, status.isOK() ? SUCCESS : FAILURE, status.getException());
- } else {
+ IPath sourcePath = ResourceUtil.makeAbsolute(pack.getPackageFilePath(), pack.isDestinationInWorkspace());
+ IPath[] removed = PackagesBuildListener.getInstance().getRemovedFiles(pack);
+ IPath[] updated = PackagesBuildListener.getInstance().getUpdatedFiles(pack);
+
+ IPath destPathRoot = new Path(server.getDeployDirectory()).append(sourcePath.lastSegment());
+ IPath suffix, destPath;
+
+ for( int j = 0; j < removed.length; j++ ) {
+ if( sourcePath.isPrefixOf(updated[j])) {
+ suffix = updated[j].removeFirstSegments(sourcePath.segmentCount());
+ destPath = destPathRoot.append(suffix);
+ FileUtil.completeDelete(destPath.toFile());
+ }
+ }
- IPath sourcePath = pack.getPackageFilePath();
- addMoveEvent(event, pack, pack.isDestinationInWorkspace(), sourcePath, sourcePath, SUCCESS, null);
+ for( int j = 0; j < updated.length; j++ ) {
+ if( sourcePath.isPrefixOf(updated[j])) {
+ suffix = updated[j].removeFirstSegments(sourcePath.segmentCount());
+ destPath = destPathRoot.append(suffix);
+ FileUtil.fileSafeCopy(updated[j].toFile(), destPath.toFile());
}
}
+
+// if( pack.isDestinationInWorkspace()) {
+// // destination is workspace. Move it.
+// IFile file = pack.getPackageFile();
+// IPath sourcePath = file.getLocation();
+// IPath destPath = new Path(server.getDeployDirectory()).append(sourcePath.lastSegment());
+// IStatus status = FileUtil.copyFile(sourcePath.toFile(), destPath.toFile());
+// addMoveEvent(event, pack, pack.isDestinationInWorkspace(), sourcePath, destPath, status.isOK() ? SUCCESS : FAILURE, status.getException());
+// } else {
+//
+// IPath sourcePath = pack.getPackageFilePath();
+// addMoveEvent(event, pack, pack.isDestinationInWorkspace(), sourcePath, sourcePath, SUCCESS, null);
+// }
+ }
}
protected void addMoveEvent(PublishEvent parent, IPackage pack, boolean inWorkspace,
IPath sourcePath, IPath destPath, int success, Throwable e) {
More information about the jboss-cvs-commits
mailing list