[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model ...
Marshall Culpepper
mculpepper at jboss.com
Thu Mar 8 17:32:27 EST 2007
User: mculpepper
Date: 07/03/08 17:32:27
Modified: as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model
PackagesListener.java
Log:
changesOrAdditions lists are now lazily created, and we implement the new packageBuildTypeChanged build event
Revision Changes Path
1.3 +31 -46 jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model/PackagesListener.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PackagesListener.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model/PackagesListener.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- PackagesListener.java 8 Mar 2007 00:06:14 -0000 1.2
+++ PackagesListener.java 8 Mar 2007 22:32:27 -0000 1.3
@@ -24,12 +24,9 @@
import java.util.ArrayList;
import java.util.HashMap;
-import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
-
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.ServerCore;
@@ -40,24 +37,18 @@
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.FileUtil;
+import org.jboss.ide.eclipse.core.util.ResourceUtil;
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.IPackageNode;
-import org.jboss.ide.eclipse.packages.core.model.IPackagesModelListener;
import org.jboss.ide.eclipse.packages.core.model.PackagesCore;
-import org.jboss.ide.eclipse.packages.core.project.build.TruezipUtil;
-import org.jboss.ide.eclipse.core.util.ResourceUtil;
-
-import de.schlichtherle.io.ArchiveDetector;
-import de.schlichtherle.io.File;
/**
*
* @author rob.stryker at jboss.com
* This class is teh suck. I dont even know whether to keep it
*/
-public class PackagesListener extends AbstractPackagesBuildListener implements IPackagesModelListener {
+public class PackagesListener extends AbstractPackagesBuildListener {
public static PackagesListener instance;
public static final String DEPLOY_SERVERS = "org.jboss.ide.eclipse.as.core.model.PackagesListener.DeployServers";
@@ -80,22 +71,32 @@
}
public void startedBuildingPackage(IPackage pkg) {
- if( pkg.isTopLevel() ) {
- changesOrAdditions.put(pkg, new ArrayList());
- removals.put(pkg, new ArrayList());
- }
+// if( pkg.isTopLevel() ) {
+// changesOrAdditions.put(pkg, new ArrayList());
+// removals.put(pkg, new ArrayList());
+// }
}
public void fileRemoved(IPackage topLevelPackage, IPackageFileSet fileset, IPath filePath) {
// make absolute
IPath filePath2 = makeAbsolute(filePath, topLevelPackage); // change
ArrayList removes = (ArrayList)removals.get(topLevelPackage);
+ if (removes == null) {
+ removes = new ArrayList();
+ changesOrAdditions.put(topLevelPackage, removes);
+ }
+
if( !removes.contains(filePath2)) removes.add(filePath2);
}
public void fileUpdated(IPackage topLevelPackage, IPackageFileSet fileset, IPath filePath) {
// make absolute
IPath filePath2 = makeAbsolute(filePath, topLevelPackage); // change
ArrayList changes = (ArrayList)changesOrAdditions.get(topLevelPackage);
+ if (changes == null) {
+ changes = new ArrayList();
+ changesOrAdditions.put(topLevelPackage, changes);
+ }
+
if( !changes.contains(filePath2)) changes.add(filePath2);
}
@@ -117,15 +118,15 @@
// If we're supposed to auto-deploy, get on it
protected static void publish(IPackage pkg) {
String servers = pkg.getProperty(PackagesListener.DEPLOY_SERVERS);
- publish(pkg, servers);
+ publish(pkg, servers, IServer.PUBLISH_INCREMENTAL);
}
- public static void publish(IPackage pkg, String servers) {
+ public static void publish(IPackage pkg, String servers, int publishType) {
IModule[] module = getModule(pkg);
if( module[0] == null ) return;
DeployableServerBehavior[] serverBehaviors = PackagesListener.getServers(servers);
if( serverBehaviors != null ) {
for( int i = 0; i < serverBehaviors.length; i++ ) {
- serverBehaviors[i].publishOneModule(IServer.PUBLISH_INCREMENTAL, module, ServerBehaviourDelegate.CHANGED, new NullProgressMonitor());
+ serverBehaviors[i].publishOneModule(publishType, module, ServerBehaviourDelegate.CHANGED, new NullProgressMonitor());
}
}
}
@@ -173,35 +174,19 @@
* If a node is changing from exploded to imploded, or vice versa
* make sure to delete the pre-existing file or folder on the server.
*/
- public void packageNodeChanged(IPackageNode changed) {
- if (changed.getNodeType() == IPackageNode.TYPE_PACKAGE
- || changed.getNodeType() == IPackageNode.TYPE_PACKAGE_REFERENCE)
- {
- IPackage pkg = (IPackage) changed;
- File packageFile = TruezipUtil.getPackageFile(pkg);
-
- if ( (packageFile.getDelegate().isFile() && pkg.isExploded())
- || (packageFile.getDelegate().isDirectory() && !pkg.isExploded())) {
-
- String servers = pkg.getProperty(PackagesListener.DEPLOY_SERVERS);
+ public void packageBuildTypeChanged(IPackage topLevelPackage, boolean isExploded) {
+ String servers = topLevelPackage.getProperty(PackagesListener.DEPLOY_SERVERS);
DeployableServerBehavior[] serverBehaviors = PackagesListener.getServers(servers);
if( serverBehaviors != null ) {
IPath sourcePath, destPath;
IDeployableServer depServer;
for( int i = 0; i < serverBehaviors.length; i++ ) {
- sourcePath = pkg.getPackageFilePath();
+ sourcePath = topLevelPackage.getPackageFilePath();
depServer = getDeployableServerFromBehavior(serverBehaviors[i]);
destPath = new Path(depServer.getDeployDirectory()).append(sourcePath.lastSegment());
boolean success = FileUtil.safeDelete(destPath.toFile());
+ FileUtil.fileSafeCopy(sourcePath.toFile(), destPath.toFile());
}
}
-
- }
}
- }
-
- public void packageNodeAdded(IPackageNode added) { }
- public void packageNodeAttached(IPackageNode attached) { }
- public void packageNodeRemoved(IPackageNode removed) { }
- public void projectRegistered(IProject project) { }
}
More information about the jboss-cvs-commits
mailing list