[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers ...
Robert Stryker
rawblem at gmail.com
Thu Jan 11 10:53:12 EST 2007
User: rawb
Date: 07/01/11 10:53:12
Modified: as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers
PackagesPublisher.java JstPackagesPublisher.java
Log:
Event fixes
Revision Changes Path
1.6 +30 -8 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.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- PackagesPublisher.java 8 Jan 2007 19:47:19 -0000 1.5
+++ PackagesPublisher.java 11 Jan 2007 15:53:12 -0000 1.6
@@ -31,16 +31,20 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Preferences;
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.JBossServerCorePlugin;
import org.jboss.ide.eclipse.as.core.model.EventLogModel;
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.model.PackagesBuildListener.PackagesPublisherBuildListener;
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.packages.core.model.IPackage;
+import org.jboss.ide.eclipse.packages.core.model.IPackagesBuildListener;
import org.jboss.ide.eclipse.packages.core.model.PackagesCore;
/**
@@ -62,13 +66,8 @@
public static final String MOVE_PACKAGE_FAIL = "org.jboss.ide.eclipse.as.core.publishers.PackagesPublisher.MOVE_PACKAGE_FAIL";
public static final String MOVE_PACKAGE_SKIP = "org.jboss.ide.eclipse.as.core.publishers.PackagesPublisher.MOVE_PACKAGE_SKIP";
-// public static final String PACKAGE_NOT_PUBLISHED = "org.jboss.ide.eclipse.as.core.publishers.PackagesPublisher.PACKAGE_NOT_PUBLISHED";
-// public static final String PACKAGE_NOT_REMOVED = "org.jboss.ide.eclipse.as.core.publishers.PackagesPublisher.PACKAGE_NOT_REMOVED";
-
-
-
- private IDeployableServer server;
- private EventLogRoot eventRoot;
+ protected IDeployableServer server;
+ protected EventLogRoot eventRoot;
public PackagesPublisher(IDeployableServer server) {
this.server = server;
@@ -169,7 +168,7 @@
addMoveEvent(event, packages[i], packages[i].isDestinationInWorkspace(), sourcePath, destPath, status.isOK() ? SUCCESS : FAILURE, status.getException());
} else {
IPath sourcePath = packages[i].getPackageFilePath();
- addMoveEvent(event, packages[i], packages[i].isDestinationInWorkspace(), sourcePath, sourcePath, SKIPPED, null);
+ addMoveEvent(event, packages[i], packages[i].isDestinationInWorkspace(), sourcePath, sourcePath, SUCCESS, null);
}
}
}catch( Exception ce ) {
@@ -253,4 +252,27 @@
}
}
+
+
+ /*
+ * Build events and stuff
+ */
+
+ public static final String PREFERENCE_KEY_LISTEN_FOR_BUILD_EVENTS =
+ "org.jboss.ide.eclipse.as.core.publishers.PackagesPublisher.ListenForBuildEventsPreferenceKey";
+ protected boolean getListenForBuildEvents() {
+ Preferences prefs = JBossServerCorePlugin.getDefault().getPluginPreferences();
+ if( prefs.contains(PREFERENCE_KEY_LISTEN_FOR_BUILD_EVENTS) )
+ return prefs.getBoolean(PREFERENCE_KEY_LISTEN_FOR_BUILD_EVENTS);
+ return true;
+ }
+
+ protected IPackagesBuildListener addBuildListener(EventLogTreeItem parent) {
+ IPackagesBuildListener buildListener = new PackagesPublisherBuildListener(parent);
+ PackagesCore.addPackagesBuildListener(buildListener);
+ return buildListener;
+ }
+ protected void removeBuildListener(IPackagesBuildListener buildListener) {
+ PackagesCore.removePackagesBuildListener(buildListener);
+ }
}
1.5 +20 -46 jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/JstPackagesPublisher.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: JstPackagesPublisher.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/JstPackagesPublisher.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- JstPackagesPublisher.java 8 Jan 2007 19:47:19 -0000 1.4
+++ JstPackagesPublisher.java 11 Jan 2007 15:53:12 -0000 1.5
@@ -21,6 +21,7 @@
*/
package org.jboss.ide.eclipse.as.core.publishers;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -42,6 +43,8 @@
import org.jboss.ide.eclipse.as.core.publishers.PackagesPublisher.PackagesPublisherRemoveEvent;
import org.jboss.ide.eclipse.as.core.server.attributes.IDeployableServer;
import org.jboss.ide.eclipse.packages.core.model.IPackage;
+import org.jboss.ide.eclipse.packages.core.model.IPackageFileSet;
+import org.jboss.ide.eclipse.packages.core.model.IPackagesBuildListener;
import org.jboss.ide.eclipse.packages.core.model.PackagesCore;
import org.jboss.ide.eclipse.packages.core.model.types.IPackageType;
@@ -49,29 +52,14 @@
* This class provides a default implementation for packaging different types of projects
* @author rob.stryker at jboss.com
*/
-public class JstPackagesPublisher implements IJBossServerPublisher {
-
- public static final String REMOVE_PACKAGE_SUCCESS = PackagesPublisher.REMOVE_PACKAGE_SUCCESS;
- public static final String REMOVE_PACKAGE_FAIL = PackagesPublisher.REMOVE_PACKAGE_FAIL;
- public static final String REMOVE_PACKAGE_SKIPPED = PackagesPublisher.REMOVE_PACKAGE_SKIPPED;
-
- private int state;
- private IDeployableServer server;
- private EventLogRoot eventRoot;
+public class JstPackagesPublisher extends PackagesPublisher {
public JstPackagesPublisher(IDeployableServer server) {
- this.server = server;
- state = IServer.PUBLISH_STATE_NONE;
- eventRoot = EventLogModel.getModel(server.getServer()).getRoot();
- }
- public int getPublishState() {
- return state;
+ super(server);
}
-
public void publishModule(int kind, int deltaKind, int modulePublishState,
IModule[] module, IProgressMonitor monitor) throws CoreException {
- checkClosed(module);
if(ServerBehaviourDelegate.REMOVED == deltaKind){
unpublish(server, module, monitor);
} else if( ServerBehaviourDelegate.NO_CHANGE != deltaKind || kind == IServer.PUBLISH_FULL || kind == IServer.PUBLISH_CLEAN ){
@@ -83,23 +71,33 @@
}
protected IStatus[] publish(IDeployableServer jbServer, IModule[] module, IProgressMonitor monitor) throws CoreException {
+ PublishEvent event = new PublishEvent(eventRoot, PackagesPublisher.PUBLISH_TOP_EVENT, module[0]);
+ EventLogModel.markChanged(eventRoot);
+
IPackage topLevel = createTopPackage(module[0], jbServer.getDeployDirectory(), monitor);
if( topLevel != null ) {
+ IPackagesBuildListener listener = null;
+ if( getListenForBuildEvents()) listener = addBuildListener(event);
PackagesCore.buildPackage(topLevel, new NullProgressMonitor());
- addMoveEvent(eventRoot, topLevel, topLevel.isDestinationInWorkspace(),
+ if( getListenForBuildEvents()) removeBuildListener(listener);
+
+ addMoveEvent(event, topLevel, topLevel.isDestinationInWorkspace(),
topLevel.getPackageFilePath(), topLevel.getPackageFilePath(), null);
}
return null;
}
protected void addMoveEvent(EventLogTreeItem parent, IPackage pack, boolean inWorkspace,
IPath sourcePath, IPath destPath, Throwable e) {
- String specType = PackagesPublisher.MOVE_PACKAGE_SKIP;
+ String specType = PackagesPublisher.MOVE_PACKAGE_SUCCESS;
new PackagesPublisherMoveEvent(parent, specType, pack, sourcePath, destPath, e );
EventLogModel.markChanged(parent);
}
protected IStatus[] unpublish(IDeployableServer jbServer, IModule[] module, IProgressMonitor monitor) throws CoreException {
+ PublishEvent event = new PublishEvent(eventRoot, PackagesPublisher.REMOVE_TOP_EVENT, module[0]);
+ EventLogModel.markChanged(eventRoot);
+
IPackage topLevel = createTopPackage(module[0], jbServer.getDeployDirectory(), monitor);
if( topLevel.isDestinationInWorkspace() ) {
String deployDir = jbServer.getDeployDirectory();
@@ -107,37 +105,14 @@
IPath path = topLevel.getPackageFile().getRawLocation();
IPath p = new Path(deployDir).append(path.lastSegment());
boolean success = p.toFile().delete();
- addRemoveEvent(eventRoot, topLevel, p, success ? SUCCESS : FAILURE);
+ addRemoveEvent(event, topLevel, p, success ? SUCCESS : FAILURE);
} else {
IPath path = topLevel.getPackageFilePath();
boolean success = path.toFile().delete();
- addRemoveEvent(eventRoot, topLevel, path, success ? SUCCESS : FAILURE);
+ addRemoveEvent(event, topLevel, path, success ? SUCCESS : FAILURE);
}
return null;
}
- protected void addRemoveEvent(EventLogTreeItem parent, IPackage pack, IPath dest, int success ) {
- addRemoveEvent(parent, pack, dest, success, null);
- }
- protected void addRemoveEvent(EventLogTreeItem parent, IPackage pack, IPath dest, int success, Exception e ) {
- String specType = null;
- switch( success ) {
- case SUCCESS: specType = REMOVE_PACKAGE_SUCCESS; break;
- case FAILURE: specType = REMOVE_PACKAGE_FAIL; break;
- case SKIPPED: specType = REMOVE_PACKAGE_SKIPPED; break;
- }
- PackagesPublisherRemoveEvent event =
- new PackagesPublisherRemoveEvent(parent, specType, pack, dest, e);
- EventLogModel.markChanged(parent);
- }
-
- protected void checkClosed(IModule[] module) throws CoreException {
- for(int i=0;i<module.length;i++) {
- if(module[i] instanceof DeletedModule) {
- IStatus status = new Status(IStatus.ERROR,JBossServerCorePlugin.PLUGIN_ID,0, "Failure", null);
- throw new CoreException(status);
- }
- }
- }
protected IPackage createTopPackage(IModule module, String deployDir, IProgressMonitor monitor) {
IPackageType type = ModulePackageTypeConverter.getPackageTypeFor(module);
@@ -149,5 +124,4 @@
}
return null;
}
-
}
More information about the jboss-cvs-commits
mailing list