[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