[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