Author: rob.stryker(a)jboss.com
Date: 2010-08-04 04:19:49 -0400 (Wed, 04 Aug 2010)
New Revision: 23909
Modified:
workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java
workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/xpl/PublishCopyUtil.java
workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/rse/core/AbstractServerToolsPublisher.java
Log:
JBIDE-6761 - progress monitors, cancel implemented
Modified:
workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java
===================================================================
---
workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java 2010-08-04
08:02:56 UTC (rev 23908)
+++
workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java 2010-08-04
08:19:49 UTC (rev 23909)
@@ -37,7 +37,6 @@
import org.jboss.ide.eclipse.as.core.extensions.events.IEventCodes;
import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
import org.jboss.ide.eclipse.as.core.server.IJBossServerConstants;
-import org.jboss.ide.eclipse.as.core.server.internal.DeployableServerBehavior;
import org.jboss.ide.eclipse.as.core.server.xpl.ModulePackager;
import org.jboss.ide.eclipse.as.core.util.DeploymentPreferenceLoader;
import
org.jboss.ide.eclipse.as.core.util.DeploymentPreferenceLoader.DeploymentModulePrefs;
@@ -45,7 +44,6 @@
import
org.jboss.ide.eclipse.as.core.util.DeploymentPreferenceLoader.DeploymentTypePrefs;
import org.jboss.ide.eclipse.as.core.util.IJBossToolingConstants;
import org.jboss.ide.eclipse.as.core.util.IWTPConstants;
-import org.jboss.ide.eclipse.as.core.util.ServerConverter;
import org.jboss.ide.eclipse.as.wtp.core.util.ServerModelUtilities;
public class PublishUtil {
@@ -83,12 +81,19 @@
return count;
}
-
+ /**
+ * All preferences are stored in the "local" setting as it was decided
+ * having to replicate deploy paths for each publish method was not good
+ *
+ * @param moduleTree
+ * @param server
+ * @param defaultFolder
+ * @param moduleProperty
+ * @return
+ */
public static String getDeployRootFolder(IModule[] moduleTree,
IDeployableServer server, String defaultFolder, String moduleProperty) {
- DeployableServerBehavior behavior =
ServerConverter.getDeployableServerBehavior(server.getServer());
- String typeId = behavior.createPublishMethod().getPublishMethodType().getId();
- return getDeployRootFolder(moduleTree, typeId,
+ return getDeployRootFolder(moduleTree, LocalPublishMethod.LOCAL_PUBLISH_METHOD,
server, defaultFolder, moduleProperty);
}
Modified:
workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/xpl/PublishCopyUtil.java
===================================================================
---
workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/xpl/PublishCopyUtil.java 2010-08-04
08:02:56 UTC (rev 23908)
+++
workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/xpl/PublishCopyUtil.java 2010-08-04
08:19:49 UTC (rev 23909)
@@ -39,6 +39,7 @@
import org.eclipse.wst.server.core.model.IModuleFolder;
import org.eclipse.wst.server.core.model.IModuleResource;
import org.eclipse.wst.server.core.model.IModuleResourceDelta;
+import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
import org.jboss.ide.eclipse.as.core.publishers.PublishUtil;
import org.jboss.ide.eclipse.as.core.util.ServerConverter;
/**
@@ -428,7 +429,13 @@
this.handler = handler;
}
+ protected IStatus[] canceledStatus() {
+ return new IStatus[]{
+ new Status(IStatus.CANCEL, JBossServerCorePlugin.PLUGIN_ID, "Publish
Canceled") //$NON-NLS-1$
+ }; // todo
+ }
+
/**
* Handle a delta publish.
*
@@ -467,7 +474,9 @@
*/
public IStatus[] publishDelta(IModuleResourceDelta delta, IPath path, IProgressMonitor
monitor) throws CoreException {
List status = new ArrayList(2);
-
+ if( monitor.isCanceled())
+ return canceledStatus();
+
IModuleResource resource = delta.getModuleResource();
int kind2 = delta.getKind();
@@ -498,6 +507,8 @@
IModuleResourceDelta[] childDeltas = delta.getAffectedChildren();
int size = childDeltas.length;
for (int i = 0; i < size; i++) {
+ if( monitor.isCanceled())
+ return canceledStatus();
IStatus[] stat = publishDelta(childDeltas[i], path, monitor);
addArrayToList(status, stat);
}
@@ -528,6 +539,8 @@
public IStatus[] publishFull(IModuleResource[] resources, IProgressMonitor monitor)
throws CoreException {
monitor.beginTask("Publishing " + resources.length + " resources",
100 * (resources.length) + 100); //$NON-NLS-1$ //$NON-NLS-2$
handler.makeDirectoryIfRequired(new Path("/"),
ProgressMonitorUtil.submon(monitor, 100)); //$NON-NLS-1$
+ if( monitor.isCanceled())
+ return canceledStatus();
IStatus[] results = publishFull(resources, new Path("/"),
ProgressMonitorUtil.submon(monitor, 100*resources.length)); //$NON-NLS-1$
monitor.done();
return results;
@@ -542,6 +555,8 @@
List status = new ArrayList(2);
int size = resources.length;
for (int i = 0; i < size; i++) {
+ if( monitor.isCanceled())
+ return canceledStatus();
IStatus[] stat = copy(resources[i], relative, ProgressMonitorUtil.submon(monitor,
100));
addArrayToList(status, stat);
}
Modified:
workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/rse/core/AbstractServerToolsPublisher.java
===================================================================
---
workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/rse/core/AbstractServerToolsPublisher.java 2010-08-04
08:02:56 UTC (rev 23908)
+++
workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/rse/core/AbstractServerToolsPublisher.java 2010-08-04
08:19:49 UTC (rev 23909)
@@ -107,7 +107,6 @@
* @return
*/
protected IPath getDeployPath(IModule[] moduleTree, IDeployableServer server) {
- DeploymentPreferenceLoader.getCurrentDeploymentMethodType(server.getServer());
String folder = PublishUtil.getDeployRootFolder(
moduleTree, server,
publishMethod.getPublishDefaultRootFolder(server.getServer()),
@@ -143,6 +142,10 @@
return false;
}
+ protected IStatus canceledStatus() {
+ return new Status(IStatus.CANCEL, JBossServerCorePlugin.PLUGIN_ID, "Publish
Canceled"); //$NON-NLS-1$
+ }
+
protected IStatus fullPublish(IModule[] moduleTree, IModule module, IProgressMonitor
monitor) throws CoreException {
monitor.beginTask("Full Publish", 1000); //$NON-NLS-1$
@@ -150,11 +153,17 @@
IPublishCopyCallbackHandler callback = getCallbackHandler(deployPath);
IModuleResource[] members = PublishUtil.getResources(module,
ProgressMonitorUtil.submon(monitor, 200));
+ if( monitor.isCanceled())
+ return canceledStatus();
+
// First delete it
// if the module we're publishing is a project, not a binary, clean it's
folder
if( !(new Path(module.getName()).segmentCount() > 1 ))
callback.deleteResource(new Path("/"), ProgressMonitorUtil.submon(monitor,
100)); //$NON-NLS-1$
+ if( monitor.isCanceled())
+ return canceledStatus();
+
ArrayList<IStatus> list = new ArrayList<IStatus>();
boolean isBinaryObject = ServerModelUtilities.isBinaryModule(module);