[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model ...
Robert Stryker
rob.stryker at jboss.com
Fri Feb 23 16:57:33 EST 2007
User: rawb
Date: 07/02/23 16:57:33
Modified: as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model
PackagesBuildListener.java
Log:
Revision Changes Path
1.7 +52 -39 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.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- PackagesBuildListener.java 15 Feb 2007 14:52:04 -0000 1.6
+++ PackagesBuildListener.java 23 Feb 2007 21:57:33 -0000 1.7
@@ -22,15 +22,9 @@
package org.jboss.ide.eclipse.as.core.model;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Date;
import java.util.HashMap;
-import java.util.Set;
-import java.util.TreeSet;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
@@ -38,16 +32,11 @@
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.AbstractPackagesBuildListener;
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;
/**
@@ -55,7 +44,7 @@
* @author rob.stryker at jboss.com
* This class is teh suck. I dont even know whether to keep it
*/
-public class PackagesBuildListener implements IPackagesBuildListener {
+public class PackagesBuildListener extends AbstractPackagesBuildListener {
//public class PackagesBuildListener {
public static PackagesBuildListener instance;
@@ -68,37 +57,65 @@
}
return instance;
}
+
+ //Keeping track of build changes
+ private HashMap changesOrAdditions = new HashMap();
+ private HashMap removals = new HashMap();
+
+
public PackagesBuildListener() {
PackagesCore.addPackagesBuildListener(this);
}
- public void remove() {
- PackagesCore.removePackagesBuildListener(this);
+ public void startedBuildingPackage(IPackage pkg) {
+ if( pkg.isTopLevel() ) {
+ changesOrAdditions.put(pkg, new ArrayList());
+ removals.put(pkg, new ArrayList());
}
-
- public void buildFailed(IPackage pkg, IStatus status) {
- System.out.println("build failed");
}
- public void finishedBuild(IProject project) {
- System.out.println("finished build");
+ public void fileRemoved(IPackage topLevelPackage, IPackageFileSet fileset, IPath filePath) {
+ // make absolute
+ IPath filePath2 = makeAbsolute(filePath); // change
+ ArrayList removes = (ArrayList)removals.get(topLevelPackage);
+ if( !removes.contains(filePath2)) removes.add(filePath2);
+ }
+ public void fileUpdated(IPackage topLevelPackage, IPackageFileSet fileset, IPath filePath) {
+ // make absolute
+ IPath filePath2 = makeAbsolute(filePath); // change
+ ArrayList changes = (ArrayList)changesOrAdditions.get(topLevelPackage);
+ if( !changes.contains(filePath2)) changes.add(filePath2);
}
- public void finishedBuildingPackage(IPackage pkg) {
+ public IPath makeAbsolute(IPath local) {
+ IPath file = PackagesCore.getBaseFile(local);
- if( new Boolean(pkg.getProperty(AUTO_DEPLOY)).booleanValue()) {
+ return file;
+ }
+ public void finishedBuildingPackage(IPackage pkg) {
+ System.out.println("finished building package");
+ if( pkg.isTopLevel() && new Boolean(pkg.getProperty(AUTO_DEPLOY)).booleanValue()) {
publish(pkg);
+ // then clean up what's been changed
+ changesOrAdditions.remove(pkg);
+ removals.remove(pkg);
}
}
- public static void publish(IPackage pkg) {
+
+
+ // If we're supposed to auto-deploy, get on it
+ protected static void publish(IPackage pkg) {
String servers = pkg.getProperty(PackagesBuildListener.DEPLOY_SERVERS);
+ publish(pkg, servers);
+ }
+ public static void publish(IPackage pkg, String 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());
+ serverBehaviors[i].publishOneModule(IServer.PUBLISH_INCREMENTAL, module, ServerBehaviourDelegate.CHANGED, new NullProgressMonitor());
}
}
}
@@ -124,20 +141,16 @@
return (DeployableServerBehavior[]) list.toArray(new DeployableServerBehavior[list.size()]);
}
- public void finishedCollectingFileSet(IPackageFileSet fileset) {
- System.out.println("finished collecting fileset");
- }
-
- public void startedBuild(IProject project) {
- System.out.println("build started");
- }
- public void startedBuildingPackage(IPackage pkg) {
- System.out.println("started building package");
- }
- public void startedCollectingFileSet(IPackageFileSet fileset) {
- System.out.println("started collecting fileset");
+ // should be called from the publisher to figure out what's changed
+ public IPath[] getUpdatedFiles(IPackage pkg) {
+ ArrayList list = (ArrayList)changesOrAdditions.get(pkg);
+ return (IPath[]) list.toArray(new IPath[list.size()]);
+ }
+ public IPath[] getRemovedFiles(IPackage pkg) {
+ ArrayList list = (ArrayList)removals.get(pkg);
+ return (IPath[]) list.toArray(new IPath[list.size()]);
}
}
More information about the jboss-cvs-commits
mailing list