[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model ...

Robert Stryker rawblem at gmail.com
Thu Feb 15 09:52:04 EST 2007


  User: rawb    
  Date: 07/02/15 09:52:04

  Modified:    as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model 
                        PackagesBuildListener.java
  Log:
  Further updates to integrating with packaging. Still not entirely complete. 
  
  Revision  Changes    Path
  1.6       +54 -278   jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model/PackagesBuildListener.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PackagesBuildListener.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model/PackagesBuildListener.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -b -r1.5 -r1.6
  --- PackagesBuildListener.java	13 Feb 2007 18:10:38 -0000	1.5
  +++ PackagesBuildListener.java	15 Feb 2007 14:52:04 -0000	1.6
  @@ -21,6 +21,7 @@
    */
   package org.jboss.ide.eclipse.as.core.model;
   
  +import java.util.ArrayList;
   import java.util.Arrays;
   import java.util.Comparator;
   import java.util.Date;
  @@ -31,10 +32,18 @@
   import org.eclipse.core.resources.IProject;
   import org.eclipse.core.runtime.IStatus;
   import org.eclipse.core.runtime.NullProgressMonitor;
  +import org.eclipse.wst.server.core.IModule;
   import org.eclipse.wst.server.core.IServer;
  +import org.eclipse.wst.server.core.ServerCore;
  +import org.eclipse.wst.server.core.internal.ModuleFactory;
  +import org.eclipse.wst.server.core.internal.ServerPlugin;
  +import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
   import org.jboss.ide.eclipse.as.core.JBossServerCore;
   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;
  +import org.jboss.ide.eclipse.as.core.server.attributes.IDeployableServer;
  +import org.jboss.ide.eclipse.as.core.server.stripped.DeployableServerBehavior;
   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.IPackageFileSet;
  @@ -50,316 +59,83 @@
   //public class PackagesBuildListener {
   
   	public static PackagesBuildListener instance;
  +	public static final String DEPLOY_SERVERS = "org.jboss.ide.eclipse.as.core.model.PackagesBuildListener.DeployServers";
  +	public static final String AUTO_DEPLOY = "org.jboss.ide.eclipse.as.core.model.PackagesBuildListener.AutoDeploy";
   
  -	
  -	
  -	private HashMap projectServerToEvent = new HashMap();
  -	public PackagesBuildListener() {
  -		if( instance != null ) {
  -			instance.remove();
  +	public static PackagesBuildListener getInstance() {
  +		if( instance == null ) {
  +			instance = new PackagesBuildListener();
   		}
  -		instance = this;
  +		return instance;
  +	}
  +	public PackagesBuildListener() {
   		PackagesCore.addPackagesBuildListener(this);
   	}
   	
   	public void remove() {
   		PackagesCore.removePackagesBuildListener(this);
   	}
  -//	
  -//
  -//	
  -//
  -//	public void startedBuildingPackage(IPackage pkg) {
  -//		IServer[] servers = getServersWhoCare(pkg);
  -//		for( int i = 0; i < servers.length; i++ ) {
  -//			ProjectServerPair projectKey = new ProjectServerPair(pkg.getProject(), servers[i]);
  -//			EventLogTreeItem item = (EventLogTreeItem)projectServerToEvent.get(projectKey);
  -//			if( item == null ) {
  -//				EventLogRoot root = EventLogModel.getModel(servers[i]).getRoot();
  -//				projectServerToEvent.put(pkg, root);
  -//				item = root;
  -//				EventLogModel.markChanged(root);
  -//			}
  -//			
  -//			PackagesBuildListenerEventLogItem child = 
  -//				new PackagesBuildListenerEventLogItem(item, PACKAGE_BUILD_STARTED);
  -//			child.setProperty("package.name", pkg.getName());
  -//			
  -//			EventLogModel.markChanged(item);
  -//		}
  -//	}
  -//
  -//	public void finishedBuildingPackage(IPackage pkg) {
  -//		IServer[] servers = getServersWhoCare(pkg);
  -//		for( int i = 0; i < servers.length; i++ ) {
  -//			ProjectServerPair projectKey = new ProjectServerPair(pkg.getProject(), servers[i]);
  -//			EventLogTreeItem item = (EventLogTreeItem)projectServerToEvent.get(projectKey);
  -//			if( item == null ) {
  -//				item = (EventLogTreeItem)projectServerToEvent.get(pkg);
  -//				if( item == null ) {
  -//					EventLogRoot root = EventLogModel.getModel(servers[i]).getRoot();
  -//					item = root;
  -//					projectServerToEvent.put(pkg, item);
  -//					EventLogModel.markChanged(root);
  -//				}
  -//			}
  -//			PackagesBuildListenerEventLogItem child = 
  -//				new PackagesBuildListenerEventLogItem(item, PACKAGE_BUILD_FINISHED);
  -//			child.setProperty("package.name", pkg.getName());
  -//			
  -//			EventLogModel.markChanged(item);
  -//			projectServerToEvent.remove(pkg);
  -//		}
  -//	}
  -//
  -//	public void buildFailed(IPackage pkg, IStatus status) {
  -//		IServer[] servers = getServersWhoCare(pkg);
  -//		for( int i = 0; i < servers.length; i++ ) {
  -//			ProjectServerPair projectKey = new ProjectServerPair(pkg.getProject(), servers[i]);
  -//			EventLogTreeItem item = (EventLogTreeItem)projectServerToEvent.get(projectKey);
  -//			if( item == null ) {
  -//				item = (EventLogTreeItem)projectServerToEvent.get(pkg);
  -//				if( item == null ) {
  -//					EventLogRoot root = EventLogModel.getModel(servers[i]).getRoot();
  -//					item = root; 
  -//					projectServerToEvent.put(pkg, item);
  -//					EventLogModel.markChanged(root);
  -//				}
  -//			}
  -//			PackagesBuildListenerEventLogItem child = 
  -//				new PackagesBuildListenerEventLogItem(item, PACKAGE_BUILD_FINISHED);
  -//			child.setProperty("package.name", pkg.getName());
  -//			
  -//			EventLogModel.markChanged(item);
  -//			projectServerToEvent.remove(pkg);
  -//		}
  -//	}
  -//
  -//	public void startedCollectingFileSet(IPackageFileSet fileset) {
  -//	}
  -//
  -//	public void finishedCollectingFileSet(IPackageFileSet fileset) {
  -//	}
  -//
  -//	
  -//	public void startedBuild(IProject project) {
  -//		IServer[] serversThatCare = getServersWhoCare(project);
  -//		
  -//		// Create a top level event for each of these guys who care
  -//		for( int i = 0; i < serversThatCare.length; i++ ) {
  -//			ProjectServerPair key = new ProjectServerPair(project, serversThatCare[i]);
  -//			EventLogRoot root = EventLogModel.getModel(serversThatCare[i]).getRoot();
  -//			projectServerToEvent.put(key, root);
  -//			
  -//			PackagesBuildListenerEventLogItem child = 
  -//				new PackagesBuildListenerEventLogItem(root, PROJECT_BUILD_STARTED);
  -//			child.setProperty("project.name", project.getName());
  -//			
  -//			EventLogModel.markChanged(root);
  -//		}
  -//	}
  -//
  -//
  -//	public void finishedBuild(IProject project) {
  -//		IServer[] serversThatCare = getServersWhoCare(project);
  -//		
  -//		// Create a top level event for each of these guys who care
  -//		for( int i = 0; i < serversThatCare.length; i++ ) {
  -//			ProjectServerPair key = new ProjectServerPair(project, serversThatCare[i]);
  -//			EventLogTreeItem buildRoot = (EventLogTreeItem)projectServerToEvent.get(key); 
  -//			PackagesBuildListenerEventLogItem val = 
  -//				new PackagesBuildListenerEventLogItem(buildRoot, PROJECT_BUILD_FINISHED);
  -//			val.setProperty("project.name", project.getName());
  -//			EventLogModel.markChanged(buildRoot);
  -//			
  -//			// cleanup
  -//			projectServerToEvent.remove(key);
  -//		}
  -//	}
  -//
  -//	
  -//	
  -//	
  -//	
  -//	
  -//	
  -//	/*
  -//	 * If a server cares about any one package, then it cares the building is starting
  -//	 */
  -//	protected IServer[] getServersWhoCare(IProject project) {
  -//		Set set = new TreeSet(new Comparator() {
  -//			public int compare(Object o1, Object o2) {
  -//				if( o1 instanceof IServer && o2 instanceof IServer) {
  -//					return ((IServer)o1).getId().compareTo(((IServer)o2).getId());
  -//				}
  -//				return 0;
  -//			} });
  -//		
  -//		IPackage[] packs = PackagesCore.getProjectPackages(project, new NullProgressMonitor());
  -//		for( int i = 0; i < packs.length; i++ )
  -//			set.addAll(Arrays.asList(getServersWhoCare(packs[i])));
  -//		return (IServer[]) set.toArray(new IServer[set.size()]);
  -//	}
  -//	
  -//	// TODO later
  -//	protected IServer[] getServersWhoCare(IPackage pack) {
  -//		return new IServer[] { };
  -//		//return JBossServerCore.getIServerJBossServers();
  -//	}
  -	
  -	
  -//	protected class ProjectServerPair {
  -//		public IProject project;
  -//		public IServer server;
  -//		public ProjectServerPair(IProject project, IServer server) {
  -//			this.project = project; this.server = server;
  -//		}
  -//		public int hashCode() {
  -//			return project.hashCode() + server.hashCode();
  -//		}
  -//		public boolean equals(Object other) {
  -//			if( !(other instanceof ProjectServerPair )) {
  -//				return false;
  -//			}
  -//			ProjectServerPair p2 = (ProjectServerPair)other;
  -//			return p2.project == project && p2.server == server;
  -//		}
  -//	}
  -	public static final String EVENT_TYPE = "org.jboss.ide.eclipse.as.core.model.Packages";
  -	
  -	public static final String PROJECT_BUILD_STARTED = "org.jboss.ide.eclipse.as.core.model.Packages.projectBuildStarted";
  -	public static final String PROJECT_BUILD_FINISHED = "org.jboss.ide.eclipse.as.core.model.Packages.projectBuildFinished";
  -	public static final String PACKAGE_BUILD_STARTED = "org.jboss.ide.eclipse.as.core.model.Packages.packageBuildStarted";
  -	public static final String PACKAGE_BUILD_FINISHED = "org.jboss.ide.eclipse.as.core.model.Packages.packageBuildFinished";
  -	public static final String PACKAGE_BUILD_FAILED = "org.jboss.ide.eclipse.as.core.model.Packages.packageBuildFinished";
  -	public static final String FILESET_START = "org.jboss.ide.eclipse.as.core.model.Packages.FilesetStarted";
  -	public static final String FILESET_FINISHED = "org.jboss.ide.eclipse.as.core.model.Packages.FilesetFinished";
  -	
  -	
  -	public static final String PROJECT_NAME = "project.name";
  -	public static final String PACKAGE_NAME = "package.name";
  -	public static final String FILESET_INCLUDES_PATTERN = "fileset.includes";
  -	public static final String FILESET_EXCLUDES_PATTERN = "fileset.excludes";
  -	public static final String FILESET_DESTINATION_FILENAME = "fileset.destination.filename";
  -	public static final String FILESET_FILE_PATH = "fileset.file.path";
  -	public static final String FILESET_PROJECT = "fileset.project";
  -	public static final String FILESET_SOURCE = "fileset.source";
  -	public static final String FILESET_SOURCE_FOLDER = "fileset.source.folder";
  -	public static final String FILESET_SOURCE_PROJECT = "fileset.source.project";
  -	
  -	public static class PackagesBuildListenerEventLogItem extends EventLogTreeItem {
  -
  -		public PackagesBuildListenerEventLogItem(SimpleTreeItem parent,
  -				String specificType) {
  -			super(parent, EVENT_TYPE, specificType);
  -			setProperty(DATE, new Long(new Date().getTime()));
  -		}
  -		
  -	}
  -	
  -	public static class PackagesPublisherBuildListener implements IPackagesBuildListener {
  -		private EventLogTreeItem parent;
  -		public PackagesPublisherBuildListener(EventLogTreeItem parent) {
  -			this.parent = parent;
  -		}
  -		public void startedBuild(IProject project) {
  -			PackagesBuildListenerEventLogItem child = 
  -				new PackagesBuildListenerEventLogItem(parent, PackagesBuildListener.PROJECT_BUILD_STARTED);
  -			child.setProperty(PROJECT_NAME, project.getName());
  -		}
  -		public void startedBuildingPackage(IPackage pkg) {
  -			PackagesBuildListenerEventLogItem child = 
  -				new PackagesBuildListenerEventLogItem(parent, PackagesBuildListener.PACKAGE_BUILD_STARTED);
  -			child.setProperty(PACKAGE_NAME, pkg.getName());
  -		}
  +
   		public void buildFailed(IPackage pkg, IStatus status) {
  -			PackagesBuildListenerEventLogItem child = 
  -				new PackagesBuildListenerEventLogItem(parent, PackagesBuildListener.PACKAGE_BUILD_FAILED);
  -			child.setProperty(PACKAGE_NAME, pkg.getName());
  -		}
  -		public void finishedBuildingPackage(IPackage pkg) {
  -			PackagesBuildListenerEventLogItem child = 
  -				new PackagesBuildListenerEventLogItem(parent, PackagesBuildListener.PACKAGE_BUILD_FINISHED);
  -			child.setProperty(PACKAGE_NAME, pkg.getName());
  +		System.out.println("build failed");
   		}
  +
   		public void finishedBuild(IProject project) {
  -			PackagesBuildListenerEventLogItem child = 
  -				new PackagesBuildListenerEventLogItem(parent, PackagesBuildListener.PROJECT_BUILD_FINISHED);
  -			child.setProperty(PROJECT_NAME, project.getName());
  +		System.out.println("finished build");
   		}
   		
  +	public void finishedBuildingPackage(IPackage pkg) {
   		
  -		public void startedCollectingFileSet(IPackageFileSet fileset) {
  -			fileset(fileset, PackagesBuildListener.FILESET_START);
  +		if( new Boolean(pkg.getProperty(AUTO_DEPLOY)).booleanValue()) {
  +			publish(pkg);
   		}
  -		public void finishedCollectingFileSet(IPackageFileSet fileset) {
  -			fileset(fileset, PackagesBuildListener.FILESET_FINISHED);
   		}
   
  -		protected void fileset(IPackageFileSet fileset, String type) {
  -			PackagesBuildListenerEventLogItem child = 
  -				new PackagesBuildListenerEventLogItem(parent, type);
  -			child.setProperty(FILESET_INCLUDES_PATTERN, fileset.getIncludesPattern());
  -			child.setProperty(FILESET_EXCLUDES_PATTERN, fileset.getDestinationFilename());
  -			child.setProperty(FILESET_DESTINATION_FILENAME, fileset.getDestinationFilename());
  -			if( fileset.getFilePath() != null )
  -				child.setProperty(FILESET_FILE_PATH, fileset.getFilePath().toOSString());
  -			if( fileset.getProject() != null ) 
  -				child.setProperty(FILESET_PROJECT, fileset.getProject().getName());
  -			if( fileset.getSourceContainer() != null )
  -				child.setProperty(FILESET_SOURCE, fileset.getSourceContainer().getFullPath().toOSString());
  -			if( fileset.getSourceFolder() != null )
  -				child.setProperty(FILESET_SOURCE_FOLDER, fileset.getSourceFolder().toOSString());
  -			if( fileset.getSourceProject() != null )
  -				child.setProperty(FILESET_SOURCE_PROJECT, fileset.getSourceProject().getName());
  +	public static void publish(IPackage pkg) {
  +		String servers = pkg.getProperty(PackagesBuildListener.DEPLOY_SERVERS);
  +		IModule[] module = getModule(pkg);
  +		if( module[0] == null ) return; 
  +		DeployableServerBehavior[] serverBehaviors = PackagesBuildListener.getServers(servers);
  +		if( serverBehaviors != null ) {
  +			for( int i = 0; i < serverBehaviors.length; i++ ) {
  +				serverBehaviors[i].publishOneModule(IServer.PUBLISH_FULL, module, ServerBehaviourDelegate.ADDED, new NullProgressMonitor());
   		}
   	}
  -
  -	/* (non-Javadoc)
  -	 * @see org.jboss.ide.eclipse.packages.core.model.IPackagesBuildListener#buildFailed(org.jboss.ide.eclipse.packages.core.model.IPackage, org.eclipse.core.runtime.IStatus)
  -	 */
  -	public void buildFailed(IPackage pkg, IStatus status) {
  -		System.out.println("build failed");
   	}
  -
  -	/* (non-Javadoc)
  -	 * @see org.jboss.ide.eclipse.packages.core.model.IPackagesBuildListener#finishedBuild(org.eclipse.core.resources.IProject)
  -	 */
  -	public void finishedBuild(IProject project) {
  -		System.out.println("finished build");
  +	protected static IModule[] getModule(IPackage node) {
  +		ModuleFactory factory = ServerPlugin.findModuleFactory("org.jboss.ide.eclipse.as.core.PackageModuleFactory");
  +		return new IModule[] { factory.getModule(PackageModuleFactory.getID(node)) };
   	}
   
  -	/* (non-Javadoc)
  -	 * @see org.jboss.ide.eclipse.packages.core.model.IPackagesBuildListener#finishedBuildingPackage(org.jboss.ide.eclipse.packages.core.model.IPackage)
  -	 */
  -	public void finishedBuildingPackage(IPackage pkg) {
  -		System.out.println("finished building package");
  +	public static DeployableServerBehavior[] getServers(String servers) {
  +		if( servers == null || "".equals(servers))
  +			return null;
  +		ArrayList list = new ArrayList();
  +		String[] byId = servers.split(",");
  +		for( int i = 0; i < byId.length; i++ ) {
  +			IServer server = ServerCore.findServer(byId[i]);
  +			if( server != null ) {
  +				Object o = server.loadAdapter(DeployableServerBehavior.class, new NullProgressMonitor());
  +				if( o != null ) {
  +					list.add((DeployableServerBehavior)o);
  +				}
  +			}
  +		}
  +		return (DeployableServerBehavior[]) list.toArray(new DeployableServerBehavior[list.size()]);
   	}
   
  -	/* (non-Javadoc)
  -	 * @see org.jboss.ide.eclipse.packages.core.model.IPackagesBuildListener#finishedCollectingFileSet(org.jboss.ide.eclipse.packages.core.model.IPackageFileSet)
  -	 */
   	public void finishedCollectingFileSet(IPackageFileSet fileset) {
   		System.out.println("finished collecting fileset");
   	}
   
  -	/* (non-Javadoc)
  -	 * @see org.jboss.ide.eclipse.packages.core.model.IPackagesBuildListener#startedBuild(org.eclipse.core.resources.IProject)
  -	 */
   	public void startedBuild(IProject project) {
   		System.out.println("build started");
   	}
   
  -	/* (non-Javadoc)
  -	 * @see org.jboss.ide.eclipse.packages.core.model.IPackagesBuildListener#startedBuildingPackage(org.jboss.ide.eclipse.packages.core.model.IPackage)
  -	 */
   	public void startedBuildingPackage(IPackage pkg) {
   		System.out.println("started building package");
   	}
   
  -	/* (non-Javadoc)
  -	 * @see org.jboss.ide.eclipse.packages.core.model.IPackagesBuildListener#startedCollectingFileSet(org.jboss.ide.eclipse.packages.core.model.IPackageFileSet)
  -	 */
   	public void startedCollectingFileSet(IPackageFileSet fileset) {
   		System.out.println("started collecting fileset");
   	}
  
  
  



More information about the jboss-cvs-commits mailing list