[jbosstools-commits] JBoss Tools SVN: r3017 - trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/singledeployable.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Aug 9 12:49:51 EDT 2007


Author: rob.stryker at jboss.com
Date: 2007-08-09 12:49:50 -0400 (Thu, 09 Aug 2007)
New Revision: 3017

Modified:
   trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/singledeployable/SingleFilePublisher.java
Log:
cleanup

Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/singledeployable/SingleFilePublisher.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/singledeployable/SingleFilePublisher.java	2007-08-09 16:41:53 UTC (rev 3016)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/singledeployable/SingleFilePublisher.java	2007-08-09 16:49:50 UTC (rev 3017)
@@ -9,6 +9,7 @@
 import org.eclipse.wst.server.core.IModule;
 import org.eclipse.wst.server.core.IServer;
 import org.eclipse.wst.server.core.model.IModuleResourceDelta;
+import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
 import org.jboss.ide.eclipse.as.core.publishers.IJBossServerPublisher;
 import org.jboss.ide.eclipse.as.core.server.attributes.IDeployableServer;
 import org.jboss.ide.eclipse.as.core.singledeployable.SingleDeployableFactory.SingleDeployableModuleDelegate;
@@ -30,15 +31,43 @@
 			int modulePublishState, IModule module, IProgressMonitor monitor)
 			throws CoreException {
 		
+		
+		IStatus status = null;
+		if(ServerBehaviourDelegate.REMOVED == deltaKind){
+        	status = unpublish(server, module, kind, deltaKind, modulePublishState, monitor);
+        } else if( ServerBehaviourDelegate.NO_CHANGE != deltaKind || kind == IServer.PUBLISH_FULL || kind == IServer.PUBLISH_CLEAN ){
+        	// if there's no change, do nothing. Otherwise, on change or add, re-publish
+        	status = publish(server, module, kind, deltaKind, modulePublishState, monitor);
+        } else if( ServerBehaviourDelegate.NO_CHANGE != deltaKind && kind == IServer.PUBLISH_INCREMENTAL ){
+        	status = publish(server, module, kind, deltaKind, modulePublishState, monitor);
+        }
+		return status;
+
+	}
+	
+	protected IStatus publish(IDeployableServer server, IModule module, int kind, int deltaKind, int modulePublishState, IProgressMonitor monitor) {
 		// COPY THE FILE HERE!!!
 		SingleDeployableModuleDelegate delegate = (SingleDeployableModuleDelegate)module.loadAdapter(SingleDeployableModuleDelegate.class, new NullProgressMonitor());
-		IPath sourcePath = delegate.getGlobalSourcePath();
-		IPath destFolder = new Path(server.getDeployDirectory());
-		FileUtil.fileSafeCopy(sourcePath.toFile(), destFolder.append(sourcePath.lastSegment()).toFile());
+		if( delegate != null ) {
+			IPath sourcePath = delegate.getGlobalSourcePath();
+			IPath destFolder = new Path(server.getDeployDirectory());
+			FileUtil.fileSafeCopy(sourcePath.toFile(), destFolder.append(sourcePath.lastSegment()).toFile());
+		}
 		
 		return null;
 	}
 
+	protected IStatus unpublish(IDeployableServer server, IModule module, int kind, int deltaKind, int modulePublishState, IProgressMonitor monitor) {
+		// delete file
+		SingleDeployableModuleDelegate delegate = (SingleDeployableModuleDelegate)module.loadAdapter(SingleDeployableModuleDelegate.class, new NullProgressMonitor());
+		if( delegate != null ) {
+			IPath sourcePath = delegate.getGlobalSourcePath();
+			IPath destFolder = new Path(server.getDeployDirectory());
+			FileUtil.safeDelete(destFolder.append(sourcePath.lastSegment()).toFile());
+		}
+		
+		return null;
+	}
 	public void setDelta(IModuleResourceDelta[] delta) {
 		// ignore delta
 	}




More information about the jbosstools-commits mailing list